无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: mdyblog
打印 上一主题 下一主题

[更新376#2825]PECMD2012.1.80.13_Win32_64.多窗口多线程.裸机系统2.3.3.1+18M酷M...

    [复制链接]
4531#
 楼主| 发表于 2013-2-28 21:52:08 | 只看该作者
原帖由 2011hwo1 于 2013-2-28 17:27 发表
是能删除的就删除,不能删除的就算了


PECMD2012.1.73.1-130228-1.多窗口线程孵化版_win32_64.sfx.zip  (含X64版)


FILE --force  文件或目录,文件或目录,文件或目录...

另外 DEVI 默认不用drvload, 可用*drvload 来优先使用drvload.exe
这是因为 不少反应 drvload.exe 有问题。




回复

使用道具 举报

4532#
发表于 2013-2-28 23:59:50 | 只看该作者
原帖由 mdyblog 于 2013-2-28 16:31 发表

A1: 多线程的和非多线程的,不同。涉及多线程同步,很多人不会用。或者说,很容易出错。
标准的做法还是HACK代码(汇编),MFC也是这么做的。 但是就怕DEP拦截。(MFC是MS的,当然设计时考虑了不拦截MFC)
...

回收站注册表的位置HKEY_LOCAL_MACHINE\default\Software\Microsoft\Windows\CurrentVersion\Explorer\BitBucket
我是直接把权限删除,彻底禁用了。
pecmd原先是设置回收站为0,但在win7下会建立回收站文件(全盘),建议改为彻底禁用,不要建立文件
回复

使用道具 举报

4533#
发表于 2013-3-1 14:51:25 | 只看该作者
PECMD的EDIT控件中按ESC直接关闭对话框,MEMO控件也是,这个问题有办法解决吗?

在 PECMD v2012.1.73.1 fix00 X86U 里有这个问题,就是置顶里面的链接里下载的
回复

使用道具 举报

4534#
发表于 2013-3-1 16:38:10 | 只看该作者
窗口能最小化到托盘图标或者时间栏吗?就是鼠标移动到时间上就出现窗口.
回复

使用道具 举报

4535#
 楼主| 发表于 2013-3-1 17:08:59 | 只看该作者
原帖由 2011hwo1 于 2013-3-1 16:38 发表
窗口能最小化到托盘图标或者时间栏吗?就是鼠标移动到时间上就出现窗口.


能说说具体要求吗?
“操作----结果” 的形式。
回复

使用道具 举报

4536#
发表于 2013-3-1 18:06:36 | 只看该作者
点最小化 窗口消失 和出现托盘图标,或者完全不可见,但是鼠标移到时间上就出现窗口
说清楚了吗
回复

使用道具 举报

4537#
发表于 2013-3-1 18:40:09 | 只看该作者
点击托盘图标再次出现窗口
回复

使用道具 举报

4538#
发表于 2013-3-1 20:19:21 | 只看该作者
gmt时间和utc时间怎么转换成年月日时间
回复

使用道具 举报

4539#
发表于 2013-3-1 20:30:26 | 只看该作者
不知道这个算不算bug:


IFEX 命令检测文件是否存在的时候,如果路径名中有!字符,并且!的后面不是数字的话,这个命令不会执行
IFEX D:\!a,MESS 1111!MESS 2222 <= 不会弹出消息窗口
IFEX D:\a!a,MESS 1111!MESS 2222 <= 不会弹出消息窗口
IFEX D:\1!a,MESS 1111!MESS 2222 <= 不会弹出消息窗口


如果!的后面紧接的是数字,这个命令就可以执行,但是判断结果会出错
IFEX D:\!1,MESS 1111!MESS 2222 <= 弹出 1111,D:\!1 不存在
IFEX D:\a!1,MESS 1111!MESS 2222 <= 弹出 1111,D:\a!1 不存在
IFEX D:\1!1,MESS 1111!MESS 2222 <= 弹出 1111,D:\1!1 不存在


还有EDIT控件和MEMO控件按ESC直接关闭窗口的问题不知道算不算bug?


最新版的应该是,刚刚才从这个置顶里下载的
PECMD2012.1.73.1-130228-1.多窗口线程孵化版_win32_64.sfx.zip

[ 本帖最后由 2010qaqz111 于 2013-3-1 20:41 编辑 ]
回复

使用道具 举报

4540#
发表于 2013-3-1 21:26:29 | 只看该作者
PART list disk 命令在刚装好的完整的win8上用User权限运行得不到正确的信息,或者说是不返回任何信息,拿不到磁盘列表,但是win自带的diskpart是可以的,这是正常的吗?

[ 本帖最后由 2010qaqz111 于 2013-3-1 21:42 编辑 ]
回复

使用道具 举报

4541#
 楼主| 发表于 2013-3-1 21:48:46 | 只看该作者

回复 #4844 2010qaqz111 的帖子

这是正常的, 需要 读实际磁盘,需要管理员权限。 好像第三方软件都这样。
MS 的 DISKPART,实际 也是需要的。 只是 他有个后台服务,以管理员运行。
回复

使用道具 举报

4542#
发表于 2013-3-1 22:03:37 | 只看该作者
原帖由 <i>mdyblog</i> 于 2013-3-1 21:48 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2689838&ptid=205402" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />
这是正常的, 需要 读实际磁盘,需要管理员权限。 好像第三方软件都这样。<br />
MS 的 DISKPART,实际 也是需要的。 只是 他有个后台服务,以管理员运行。
<br />
这样加载配置文件运行就有点麻烦了啊,只能专门做个快捷方式然后用管理员权限运行了
回复

使用道具 举报

4543#
 楼主| 发表于 2013-3-1 22:07:34 | 只看该作者
原帖由 2010qaqz111 于 2013-3-1 20:30 发表
不知道这个算不算bug:


IFEX 命令检测文件是否存在的时候,如果路径名中有!字符,并且!的后面不是数字的话,这个命令不会执行
IFEX D:\!a,MESS 1111!MESS 2222  


1. ESC 已处理。 稍后上传,等托盘完成一起。

2. !不算bUG
1)  IFEX/FIND 后的!是语法关键词,表示ELSE 部分
类似的还有 EXEC 后的!。



2) 逗号前的!是语法关键词,表示不等于

IFEX D:\!a,MESS 1111!MESS 2222   //不能处理
IFEX $1=1,  EXEC  =! calc.exe   //不能处理。


IFEX D:\!a
的涵义是 IFEX D:\   !=   a
即 磁盘 D:\ 可以空间不是 a(MB),从语法分析这样。 当然数值非法。 但PECMD不会分辨这么细致的。 还是变量传递吧。

一般用变量传入。
ENVI &&afile=D:\!a
IFEX %&afile%,MESS 1111! MESS 2222

[ 本帖最后由 mdyblog 于 2013-3-1 23:22 编辑 ]
回复

使用道具 举报

4544#
 楼主| 发表于 2013-3-1 22:50:44 | 只看该作者
原帖由 2010qaqz111 于 2013-3-1 22:03 发表

这样加载配置文件运行就有点麻烦了啊,只能专门做个快捷方式然后用管理员权限运行了


也可以做一个服务(PECMD本身就支持)。
USER 运行客户端就可以。

一般PE用不上。
回复

使用道具 举报

4545#
 楼主| 发表于 2013-3-2 02:31:12 | 只看该作者
原帖由 2011hwo1 于 2013-3-1 20:19 发表
gmt时间和utc时间怎么转换成年月日时间


DATE T utc
返回的时间是以100纳秒为单位。 从1601.1.1 12:00AM开始计时。
DATE T gmt
返回的时间是以秒为单位。 从公元1970.1.1 0:00开始计时。
相差  11644473600 秒
utc = (gmt + 11644473600  ) * 10000000


UTC 转 年月日
FileTimeToSystemTime(
  __in          const FILETIME* lpFileTime,
  __out        SYSTEMTIME*  lpSystemTime
);

FILETIME 就是 UINT64   //64位

struct FILETIME {
  DWORD dwLowDateTime;    //2个32位数拼装
  DWORD dwHighDateTime;
}

struct SYSTEMTIME {
  WORD wYear;
  WORD wMonth;
  WORD wDayOfWeek;
  WORD wDay;
  WORD wHour;
  WORD wMinute;
  WORD wSecond;
  WORD wMilliseconds;
}  

年月日 转 UTC
BOOL WINAPI SystemTimeToFileTime(
  __in          const SYSTEMTIME* lpSystemTime,
  __out         LPFILETIME lpFileTime
);


国际UTC 转 年月日(本地UTC

BOOL WINAPI FileTimeToLocalFileTime(
  __in          const FILETIME* lpFileTime,
  __out         LPFILETIME lpLocalFileTime
);

UTC 转 年月日(本地时间)
FileTimeToLocalFileTime( &t1, &t2)
FileTimeToSystemTime(&t2, &t3)


本地时间转国际时间

BOOL WINAPI LocalFileTimeToFileTime(
  __in          const FILETIME* lpLocalFileTime,
  __out         LPFILETIME lpFileTime
);

格式化函数:
int sprintf( buf, fmt, ....);

int sscanf( buf, fmt, ....);





PECMD:
ENVI &&&ALIAS *opt FileTimeToSystemTime=CALL $**ret:* Kernel32.DLL,FileTimeToSystemTime,
ENVI &&&ALIAS *opt SystemTimeToFileTime=CALL $**ret:* Kernel32.DLL,SystemTimeToFileTime,
ENVI &&&ALIAS *opt FileTimeToLocalFileTime=CALL $**ret:* Kernel32.DLL,FileTimeToLocalFileTime,
ENVI &&&ALIAS *opt LocalFileTimeToFileTime=CALL $**ret:* Kernel32.DLL,LocalFileTimeToFileTime,

ENVI &&&ALIAS *opt sprintf=CALL $**c **ret:* user32.DLL,wsprintfW,
ENVI &&&ALIAS *opt sscanf=CALL $**c **ret:* MSVCRT.DLL,swscanf,

[ 本帖最后由 mdyblog 于 2013-3-2 02:39 编辑 ]
回复

使用道具 举报

4546#
 楼主| 发表于 2013-3-2 03:07:12 | 只看该作者
原帖由 2011hwo1 于 2013-3-1 18:40 发表
点击托盘图标再次出现窗口

PECMD2012.1.73.1-130301-1.多窗口线程孵化版_win32_64.sfx.zip
ESC 已解决。
┃    │格式│TIPS[.]* [提示框标题],<提示框内容>,,,托盘栏图标      ┃
┃    │    │TIPS#[.]* [提示框标题],<提示框内容>,#,,托盘栏图标    ┃
后缀*为窗口私有TRAY控件(自动回收).  每个窗口均可有一个自己的托盘。

窗口托盘测试.wcs(保内有 )

点 进入托盘, 就窗口消失, 进入托盘

点 还原 就出窗口,托盘提示 定时器每秒更新一次。

[ 本帖最后由 mdyblog 于 2013-3-2 03:13 编辑 ]
回复

使用道具 举报

4547#
发表于 2013-3-2 11:59:16 | 只看该作者

回复 #4850 mdyblog 的帖子

点击进入托盘能进入托盘,但是点击最小化不能进入托盘啊
回复

使用道具 举报

4548#
发表于 2013-3-2 12:00:15 | 只看该作者
PECMD:
ENVI &&&ALIAS *opt FileTimeToSystemTime=CALL $**ret:* Kernel32.DLL,FileTimeToSystemTime,
ENVI &&&ALIAS *opt SystemTimeToFileTime=CALL $**ret:* Kernel32.DLL,SystemTimeToFileTime,
ENVI &&&ALIAS *opt FileTimeToLocalFileTime=CALL $**ret:* Kernel32.DLL,FileTimeToLocalFileTime,
ENVI &&&ALIAS *opt LocalFileTimeToFileTime=CALL $**ret:* Kernel32.DLL,LocalFileTimeToFileTime,

ENVI &&&ALIAS *opt sprintf=CALL $**c **ret:* user32.DLL,wsprintfW,
ENVI &&&ALIAS *opt sscanf=CALL $**c **ret:* MSVCRT.DLL,swscanf,
这个怎么用啊,不不会啊
回复

使用道具 举报

4549#
发表于 2013-3-2 14:38:08 | 只看该作者
file 同步复制文件功能能添加吗?就是复制时如果重名就仅复制大小或者时间不同的文件.
回复

使用道具 举报

4550#
 楼主| 发表于 2013-3-2 14:46:13 | 只看该作者

回复 #4851 2011hwo1 的帖子

捕捉WM_SIZE 消息。
参见相关示例(可变大小)

[ 本帖最后由 mdyblog 于 2013-3-2 18:35 编辑 ]
回复

使用道具 举报

4551#
发表于 2013-3-2 15:16:55 | 只看该作者
原帖由 mdyblog 于 2013-3-1 22:07 发表


1. ESC 已处理。 稍后上传,等托盘完成一起。

2. !不算bUG
1)  IFEX/FIND 后的!是语法关键词,表示ELSE 部分。
类似的还有 EXEC 后的!。



2) 逗号前的!是语法关键词,表示不等于

IFEX D:\!a ...


最新情况:

PECMD2012.1.73.1-130301-2.多窗口线程孵化版_win32_64.sfx.zip - 自解压格式 ZIP 压缩文件, 解包大小为 8,960,440 字节

1.ESC的问题确实已经解决,谢谢!


2.IFEX 里面路径有!的问题用变量传入还是不行,复制这个写法测试:

ENVI &&afile=D:\!a
IFEX %&afile%,MESS 1111! MESS 2222 <= 仍然不弹出消息框

看来只能尽量避免让路径里出现!了。
另外提出一个想法,为了照顾到这种情况,或许可以加一个可选的 -exist 参数指明是判断文件或目录是否存在?


3.还有再问一个跟IFEX有关的问题,是否有简洁的办法判断一个路径是目录还是文件或者是否存在?
目前我用的办法是这样:

SET FileState=0 <=0不存在,1文件,2目录
IFEX %FPATH%\, SET FileState=2!IFEX %FPATH%,SET FileState=1

虽然也是有效的,但是感觉有些繁琐,想问问有没有更简单的办法。


4.感谢解答,这个工具很好用!

[ 本帖最后由 2010qaqz111 于 2013-3-2 15:45 编辑 ]
回复

使用道具 举报

4552#
发表于 2013-3-2 15:49:26 | 只看该作者
看看看看看看看看看看看看看看看看看看看看看看看看看
回复

使用道具 举报

4553#
 楼主| 发表于 2013-3-2 16:54:07 | 只看该作者
原帖由 2011hwo1 于 2013-3-2 12:00 发表
PECMD:
ENVI &&&ALIAS *opt FileTimeToSystemTime=CALL $**ret:* Kernel32.DLL,FileTimeToSystemTime,
ENVI &&&ALIAS *opt SystemTimeToFileTime=CALL $**ret:* Kernel32.DLL,SystemTimeToFileTime,
ENVI && ...

时间转换_WCS.zip (887 Bytes, 下载次数: 4609)

Snap1.gif (4.47 KB, 下载次数: 147)

Snap1.gif

评分

参与人数 1无忧币 +5 收起 理由
2011hwo1 + 5

查看全部评分

回复

使用道具 举报

4554#
 楼主| 发表于 2013-3-2 18:31:42 | 只看该作者
原帖由 2010qaqz111 于 2013-3-2 15:16 发表
最新情况:
PECMD2012.1.73.1-130301-2.多窗口线程孵化版_win32_64.sfx.zip - 自解压格式 ZIP 压缩文件, 解包大小为 8,960,440 字节
1.ESC的问题确实已经解决,谢谢!
2.IFEX 里面路径有!的问题 ...

>>2.IFEX 里面路径有!的问题用变量传入还是不行,复制这个写法测试:
------------------
A: PECMD2012.1.73.1-130301-3.多窗口线程孵化版_win32_64.sfx.zip 可以。
ENVI &&afile=D:\!a
IFEX %&afile%,MESS 1111! MESS 2222
//不知道这样修改会不会 不兼容4.0. 这里只启用字面上的比较符号<>=!


同时。 DATE 增加了 zone 返回时区。
方便国际时间和本地时间的转换,
简化了  时间转换.WCS

[ 本帖最后由 mdyblog 于 2013-3-2 18:34 编辑 ]
回复

使用道具 举报

4555#
 楼主| 发表于 2013-3-2 18:36:14 | 只看该作者
原帖由 2011hwo1 于 2013-3-2 14:38 发表
file 同步复制文件功能能添加吗?就是复制时如果重名就仅复制大小或者时间不同的文件.


可以写个脚本。
SZIE
SITE
回复

使用道具 举报

4556#
发表于 2013-3-2 19:54:40 | 只看该作者
原帖由 mdyblog 于 2013-3-2 18:31 发表

>>2.IFEX 里面路径有!的问题用变量传入还是不行,复制这个写法测试:
------------------
A: PECMD2012.1.73.1-130301-3.多窗口线程孵化版_win32_64.sfx.zip 可以。
ENVI &&afile=D:\!a
IFEX %&afile%,ME ...


-3这个版本下来试了一下,貌似传变量是可以了,但是又出现了另外的问题,我以前能用的脚本现在直接挂了,我再仔细测试一下看看。

[ 本帖最后由 2010qaqz111 于 2013-3-2 20:42 编辑 ]
回复

使用道具 举报

4557#
发表于 2013-3-2 21:12:04 | 只看该作者
关于 FIND的部分测试:

 期待结果-2版-3版
SET ASD=C:   
FIND $!=%ASD%,MESS 1YY!MESS 2NNynn
FIND $<>%ASD%,MESS 1YY!MESS 2NNynn
FIND $!%ASD% ,MESS 1YY!MESS 2NNyyn
FIND $=%ASD% ,MESS 1YY!MESS 2NNnnn
    
FIND $%ASD%!=,MESS 3YY!MESS 4NNyyy
FIND $%ASD%<>,MESS 3YY!MESS 4NNyyy
FIND $%ASD%! ,MESS 3YY!MESS 4NNyyy
FIND $%ASD%= ,MESS 3YY!MESS 4NNnnn
    
SET ASD=   
FIND $!=%ASD%,MESS 5YY!MESS 6NNnnn
FIND $<>%ASD%,MESS 5YY!MESS 6NNnyy
FIND $!%ASD% ,MESS 5YY!MESS 6NNnnn
FIND $=%ASD% ,MESS 5YY!MESS 6NNyyn
    
FIND $%ASD%!=,MESS 7YY!MESS 8NNnnn
FIND $%ASD%<>,MESS 7YY!MESS 8NNnnn
FIND $%ASD%! ,MESS 7YY!MESS 8NNnnn
FIND $%ASD%= ,MESS 7YY!MESS 8NNyyy


脚本:
SET ASD=C:
FIND $!=%ASD%,MESS 1YY!MESS 2NN
FIND $<>%ASD%,MESS 1YY!MESS 2NN
FIND $!%ASD% ,MESS 1YY!MESS 2NN
FIND $=%ASD% ,MESS 1YY!MESS 2NN
FIND $%ASD%!=,MESS 3YY!MESS 4NN
FIND $%ASD%<>,MESS 3YY!MESS 4NN
FIND $%ASD%! ,MESS 3YY!MESS 4NN
FIND $%ASD%= ,MESS 3YY!MESS 4NN
SET ASD=
FIND $!=%ASD%,MESS 5YY!MESS 6NN
FIND $<>%ASD%,MESS 5YY!MESS 6NN
FIND $!%ASD% ,MESS 5YY!MESS 6NN
FIND $=%ASD% ,MESS 5YY!MESS 6NN
FIND $%ASD%!=,MESS 7YY!MESS 8NN
FIND $%ASD%<>,MESS 7YY!MESS 8NN
FIND $%ASD%! ,MESS 7YY!MESS 8NN
FIND $%ASD%= ,MESS 7YY!MESS 8NN

[ 本帖最后由 2010qaqz111 于 2013-3-2 21:33 编辑 ]

PECMD-FIND-IFEX-test.rar

7.54 KB, 下载次数: 4, 下载积分: 无忧币 -2

回复

使用道具 举报

4558#
发表于 2013-3-2 21:19:23 | 只看该作者
看来判断字串为空得把变量放在比较浮前面,平时用C的时候都是习惯把常数放在比较操作符前面的,我的脚本刚好用到有变化那个格式,所以直接挂了。

[ 本帖最后由 2010qaqz111 于 2013-3-2 21:21 编辑 ]
回复

使用道具 举报

4559#
 楼主| 发表于 2013-3-2 22:46:11 | 只看该作者
原帖由 2010qaqz111 于 2013-3-2 21:12 发表
关于 FIND的部分测试:

 期待结果-2版-3版SET ASD=C:   FIND $!=%ASD%,MESS 1YY!MESS 2NNynnFIND $%ASD%,MESS 1YY!MESS 2NNynnFIND $!%ASD% ,MESS 1YY!MESS 2NNyynFIND $=%ASD% ,MESS 1YY!MESS 2NNnnn  ...


$后的第一字符不当做 比较符,当做第一变量
从第二字符开查找 比较符
方便直接和比较符比较,如=,如!

FIND $!=%ASD%,MESS 1YY!MESS 2NNynn
FIND $<>%ASD%,MESS 1YY!MESS 2NN

FIND $!=%ASD%,
意思是 %ASD% 等于 !吗

$后加个空格
FIND $ !=%ASD%,
意思是 %ASD% 不等于 空串

-------------------
FIND $<>%ASD%,
意思是 %ASD% 小于 < 吗

$后加个空格

FIND $ <>%ASD%,
意思是 %ASD% 不等于 空串 吗



===
FIND $可以加个空格。
和=<>!比较时, 直接放到$后。



[ 本帖最后由 mdyblog 于 2013-3-2 22:53 编辑 ]
回复

使用道具 举报

4560#
发表于 2013-3-2 23:29:22 | 只看该作者
原帖由 <i>mdyblog</i> 于 2013-3-2 22:46 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2690577&ptid=205402" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />

<br />

<br />
$后的第一字符不当做 比较符,当做第一变量。<br />
从第二字符开查找 比较符<br />
方便直接和比较符比较,如=,如!<br />
<br />
FIND $!=%ASD%,MESS 1YY!MESS 2NNynnFIND $%ASD%,MESS 1YY!MESS 2NN<br />
FIND $!=%ASD%,<br />
意思是 % ...
<br />

明白了,谢谢!


再问一个技术问题,IFEX/FIND 后面如果条件真假的两个分支都有很多语句的话,除了 TEAM 嵌在一行里面写完可以拆成多行吗?
大括号可以拆行,但是在说明里没有看到可以跟ELSE部分的语法。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-7-10 05:42

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表