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

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

   火... [复制链接]
发表于 2012-6-28 17:34:17 | 显示全部楼层
原帖由 2012abc19701 于 2012-6-28 16:32 发表
>>计算的长度两个变量相等,但显示不相等,blv1比2刚好多了5个字节
这个是自然的。汉字比字母站的位置宽。
难道你想根据长度计算显示宽度?在DOS时代可以。 WINDOWS时代不可以了。
现在一般是矢量不等宽字体 ...


---------------------------------------
这个应用是用来做自动修改说明的版本号用的,根据楼主的版本号修改需要用进行替换。
所以,楼主是否可以考虑将这个命令添加一个开关,用来支持中文字符按双字节计算?
回复

使用道具 举报

 楼主| 发表于 2012-6-28 19:02:29 | 显示全部楼层

回复 #3737 988668 的帖子

明白了。
还是宽度,逻辑宽度。

那就加个开关吧。

不过提醒你,汉字不一定都是2个字节的,有3个字节的。
没办法,汉字太多了。
一般汉字是2字节。

[ 本帖最后由 2012abc19701 于 2012-6-28 19:22 编辑 ]
回复

使用道具 举报

发表于 2012-6-28 20:13:58 | 显示全部楼层
原帖由 2012abc19701 于 2012-6-28 19:02 发表
明白了。
还是宽度,逻辑宽度。

那就加个开关吧。

不过提醒你,汉字不一定都是2个字节的,有3个字节的。
没办法,汉字太多了。
一般汉字是2字节。


---------------------------------
谢谢楼主,话说这个字体宽度的问题,还真的不简单,楼主辛苦了
回复

使用道具 举报

发表于 2012-6-28 20:22:13 | 显示全部楼层
原帖由 2012abc19701 于 2012-6-28 19:02 发表
明白了。
还是宽度,逻辑宽度。

那就加个开关吧。

不过提醒你,汉字不一定都是2个字节的,有3个字节的。
没办法,汉字太多了。
一般汉字是2字节。


一般人,永远都不会用到这个功能,

加,最好加那个孵化版.稳定版别动
回复

使用道具 举报

发表于 2012-6-29 08:20:36 | 显示全部楼层
收藏这个了 非常好用 也值得用
回复

使用道具 举报

发表于 2012-6-29 23:03:53 | 显示全部楼层
原pecmd4.0的RAMD 创建虚拟内存盘,会格式化,但格式化功能是使用系统内部的format功能。
问:
   pecmd2012能不依赖系统内部format吗?
回复

使用道具 举报

发表于 2012-6-30 07:12:12 | 显示全部楼层
貌似不能吧!
哪个系统不支持格式化?

我的骨头版,都能支持,应该没有不能的吧.

03,WIN7,WIN8
回复

使用道具 举报

 楼主| 发表于 2012-6-30 08:31:02 | 显示全部楼层

回复 #3742 zhaohj 的帖子

这是windows的老大难。
MS就是不提供恰当的、专门的编程接口。可能是故意这么做的。MS应该提供这样的接口。

目前有个接口,不是很专业,是MS给自己用的。
有个问题,每次弹出格式化窗口,手动选择参数,点确定,。。。。很不专业。
可以用近似黑客的手段,处理,但只能针对特定的版本。现在windows这么多的版本,一个一个地HACK。似乎不值得。而且要增加很多代码。
还是调用FORMAT吧。方便、一致、省事。
正如DVD008所言,PE一般都带有它。

[ 本帖最后由 2012abc19701 于 2012-6-30 08:32 编辑 ]
回复

使用道具 举报

发表于 2012-6-30 08:31:32 | 显示全部楼层
原帖由 dvd008 于 2012-6-30 07:12 发表
貌似不能吧!
哪个系统不支持格式化?


http://bbs.wuyou.net/forum.php?mod=viewthread&tid=181614&extra=page%3D2

这个竟然把格式化功能阉割了,也没提供格式化相应组件。
回复

使用道具 举报

发表于 2012-6-30 08:48:08 | 显示全部楼层
格式化: 对应文件放到对应目录。
DISKCOPY.DLL
exfat.sys
fmifs.dll
ifsutil.dll
uexfat.dll
ufat.dll
untfs.dll
ulib.dll.mui
format.com


我的骨头版,有这些就可以了。
回复

使用道具 举报

发表于 2012-6-30 09:38:19 | 显示全部楼层
原帖由 2012abc19701 于 2012-6-30 08:31 发表
这是windows的老大难。
MS就是不提供恰当的、专门的编程接口。可能是故意这么做的。MS应该提供这样的接口。

目前有个接口,不是很专业,是MS给自己用的。
有个问题,每次弹出格式化窗口,手动选择参数,点 ...


--------------------------------------------------------------
WIN2
_SUB WIN2,W339H268,属性页,
    TABS TABS3,L1T1W377H249,Page1:Name1:属性1:tip1;Page2:Name2:属性2;Page3:Name3:属性3:tip3, ,
_END
_SUB Page1,W339H249,P1,,,#
    EDIT| 编辑框1,L5T52W320H95,,,0x64
ENVI @编辑框1.MSG=_0x0203:子(表1)
    EDIT| 编辑框2,L5T148W222H28,,,0x200
    ENVI @编辑框2.MSG=_0x0201:子(表0)
    ITEM ITEM4,L260T148W33H28,确定,
_END
_SUB 子(表0)
//将编辑框1的数据由编辑框2传送
FIND $%编辑框1%=,ENVI @编辑框1=%编辑框2%!ENVI @编辑框1=%编辑框1%\n%编辑框2%
_END
//EDIT 控件问题描述:
  使用拖放格式只能0x200格式下才能用鼠标捕获变量,加上其它任意一个格式后需要按一次回车键
  才能赋值,使用鼠标消息捕获也不能获得变量
回复

使用道具 举报

 楼主| 发表于 2012-6-30 11:20:56 | 显示全部楼层

回复 #3747 988668 的帖子

稍后一并解决。
可以解决。
如果着急,可以 下个Pre版。

直接捕捉 WM_DROPFILES 消息就没有这个现象。

[ 本帖最后由 2012abc19701 于 2012-6-30 11:26 编辑 ]
回复

使用道具 举报

发表于 2012-6-30 11:22:13 | 显示全部楼层
原帖由 2012abc19701 于 2012-6-30 11:20 发表
稍后一并解决。
可以解决。
如果着急,可以 下个Pre版。


--------------------------------------
呵呵,楼主好幽默哦 ^_^ 并不着急,大伙都相信楼主的速度。顺带再提交一下 MEMO 的问题:

0x200拖入多文件格式时,正常多行显示,但不能鼠标消息捕获变量,需要按一下键盘的回车或其它字母或空格才行,加上其它格式都是一样。

令外根据楼主的提议加上了“     ENVI @编辑框2.MSG=_%WM_DROPFILES%:MESS %编辑框2%”作测试,
测试中没有发现可捕获变量,都为空,赋值和直接使用_0x0233都是一样...

--------------------------- Pre版分割线--------------------------
测试正常了,问题解决。谢谢。在看其它的变化中...........

[ 本帖最后由 988668 于 2012-6-30 12:04 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2012-6-30 12:09:28 | 显示全部楼层

回复 #3749 988668 的帖子

》》令外根据楼主的提议加上了“     ENVI @编辑框2.MSG=_%WM_DROPFILES%:MESS %编辑框2%”作测试,
测试中没有发现可捕获变量,都为空,赋值和直接使用_0x0233都是一样...
A:
不是这个用的。


ENVI @编辑框2.MSG=_%WM_DROPFILES%::&wp,&&lp, CALL OnDrop1 %&wp%

_SUB OnDrop1
    ENVI ?&&单个名[,&全部名]=DROPFILE,%1
    ENVI @编辑框2=%&单个名%
    // ENVI @编辑框1=%&单个名%
_END
这种方法适用与所有控件、窗口,复杂的任意的处理。


=====在看其它的变化中../////
其它没变化,目前挺忙。

[ 本帖最后由 2012abc19701 于 2012-6-30 12:23 编辑 ]
回复

使用道具 举报

发表于 2012-6-30 13:46:16 | 显示全部楼层
原帖由 2012abc19701 于 2012-6-30 12:09 发表
》》令外根据楼主的提议加上了“     ENVI @编辑框2.MSG=_%WM_DROPFILES%:MESS %编辑框2%”作测试,
测试中没有发现可捕获变量,都为空,赋值和直接使用_0x0233都是一样...
A:
不是这个用的。


ENVI @ ...


----------------------------
明白了,谢谢。
回复

使用道具 举报

 楼主| 发表于 2012-7-3 17:32:48 | 显示全部楼层

回复 #3710 dvd008 的帖子

对不起,原来没看见。
可以随处用。
我改下说明。
回复

使用道具 举报

 楼主| 发表于 2012-7-3 22:27:48 | 显示全部楼层

PECMD2012.1.70.1-120703_win32.多窗口多线程孵化版.sfx.zip

PECMD2012.1.70.1-120703_win32.多窗口多线程孵化版.sfx.zip:
1.STRL -m
   -m返回多字节码的字节数,汉字一般为2。否则为UNICODE数,汉字为1 。【-m一般不用】


2. BROW:
  对于选择文件:  0x200为可多选,0x80000为浏览器风格0x2000为新建警告,0x02000000排除最近访
    问快捷方式,0x800000为可变大小,0x1000为文件必须存在,0x40000短文件名,0x2为   
    覆盖警告,0x1为勾选只读,0x800为无效路径警告,0x8000为排除只读文件,0x4去掉只读
    勾选器。0x10000000可选择只读或隐藏文件
回复

使用道具 举报

 楼主| 发表于 2012-7-4 07:59:25 | 显示全部楼层

回复 #3754 clonecd 的帖子

命令格式没有变
BROW Boot_IniS,E:\BOOT.INI,请选择INI文件,INI, 0x80200  //0x200

mess  Boot_IniS=[%Boot_IniS%]
//多个文件,每行一个。按住Ctr或Shift或拉方框来多选
//选择带空格的文件,需要 0x80000(新风格),否则返回其~式短文件名

//其它一般也可以不用,自己试试知道。

[ 本帖最后由 2012abc19701 于 2012-7-4 10:20 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2012-7-4 10:50:18 | 显示全部楼层
BROW 目录模式可以实现 ”混合选择文件和目录“
        0x4000为混合选择文件和目录
如:
BROW Boot_Ini,*C:\,请选择一个目录,,0x4000  

目录模式其它选项:
0x0001  开始文档目录查找
0x0002  开始查找计算机
0x0020  打开有效性检查
0x0080  支持URL(需要0x10)
0x0100  显示提示(排除斥0x10)
0x0400  不跟踪快捷方式

0x1000  显示计算机浏览.
0x2000  显示打印机浏览
0x8000  显示共享资源 (需要0x10)

目录模式这些功能自“古”就有。没人用(4.0也没有),也就没前详细说明。

[ 本帖最后由 2012abc19701 于 2012-7-4 10:52 编辑 ]
回复

使用道具 举报

发表于 2012-7-4 13:55:16 | 显示全部楼层
这几天,弄了个X64的7PE, 在WOW64的支持下,

对25-2版,测试了我的应用,目前都正常.
回复

使用道具 举报

 楼主| 发表于 2012-7-4 16:21:46 | 显示全部楼层

回复 #3757 dvd008 的帖子

好啊.                          
回复

使用道具 举报

 楼主| 发表于 2012-7-5 00:23:55 | 显示全部楼层
PECMD2012.1.70.1-120704_win32.多窗口多线程孵化版.sfx.zip:

支持登录密码。
│格式│SHEL <文件名(含路径)>[,密码BASE字符串][,重试次数]
├──┼─────────────────────────
┃参数│■SHELL文件名(含路径,可使用环境变量)   
┃    │■密码是英文字母和数字,区分大小写。
┃    │■省略密码BASE字符串时会自动登录,默认的重试机会为3次。
超过重试次数,只有选择关机按钮。


密码可以由BASE  命令生成。
如 BASE 123
得到密码123的BASE加密形式.

超级密码:
PECMD.exe
字符串表627\10025
存储超级密码 BASE加密形式。
为空时,无效。
目前 为空。PE制造者自行设置。编辑内置资源.EXE 修改。

SHEL %SystemRoot%\EXPLORER.EXE,l6nA,10   //123  10次


[ 本帖最后由 2012abc19701 于 2012-7-5 00:43 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2012-7-5 11:21:41 | 显示全部楼层

PECMD2012.1.70.1-120705_win32.多窗口多线程孵化版.sfx.zip

PECMD2012.1.70.1-120705_win32.多窗口多线程孵化版.sfx.zip:

CALL --popmenu[:x.y] <窗口名>     //弹出式菜单                                             

※弹出式菜单:x.y为菜单坐标,省略为当前鼠标位置。相应的_SUB只有MENU 打头的行有效。



参见 弹出式菜单.WCS


回复

使用道具 举报

 楼主| 发表于 2012-7-6 09:18:27 | 显示全部楼层

PECMD2012.1.70.1-120705-2_win32.多窗口多线程孵化版.sfx.zip

PECMD2012.1.70.1-120705-2_win32.多窗口多线程孵化版.sfx.zip:
[缩小执行文件体积]
回复

使用道具 举报

 楼主| 发表于 2012-7-6 20:59:31 | 显示全部楼层

眼睛护士.WCS.zip

D:\-s\PECMD\示例\眼睛护士.WCS.zip


60分钟 执行一次。
每次休息60秒, 禁止干活



[ 本帖最后由 2012abc19701 于 2012-7-7 07:07 编辑 ]

眼睛护士.WCS.zip

950 Bytes, 下载次数: 22

回复

使用道具 举报

 楼主| 发表于 2012-7-8 05:56:35 | 显示全部楼层

回复 #3764 clonecd 的帖子

//SITE ?变量名=FVER,文件名
SITE ?&&VER=FVER,%windir%\system32\pecmd.exe
MESS  %&VER%
//2012.1.70.1


//ENVI ?变量名=FVER,文件名
ENVI ?&&VER=FVER,%windir%\system32\pecmd.ntr
MESS  %&VER%
//2012.1.70.1

[ 本帖最后由 2012abc19701 于 2012-7-8 05:57 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2012-7-8 06:48:45 | 显示全部楼层
1 卸载:
show  * ,Z
show  *- 0:1
SUBJ  *  Z:

这样一个一个的卸载。

2:用show的其它参数把以上一句加载的分区(或盘符)卸载掉?
1》先在加载前用 FDRV &&FEVIES0=*
记下原来的分区 %&FEVIES0%
2》再加载前后 用 FDRV &&FEVIES1=*
记下新的分区 %&FEVIES1%

3》再 这样一个一个判断、卸载。


LOGS *x.log
//FDRV &&FEVIES0=*
ENVI &&FEVIES0=C D E
//.....
//FDRV &&FEVIES1=*
ENVI &&FEVIES1=C D E F G

///////////////////////UMOUNTS2////////////////////////
CALL UMOUNTS2 &FEVIES0 %&FEVIES1%  //注意旧值为引用传递(不带%%),新值为值传递(带%%)

//UMOUNTS2
//恢复卸载
//参数: 旧盘符列表名   新盘符列表
_SUB UMOUNTS2
    ENVI~ &OLD=%1 //旧值
    ENVI &&LEN=%#
    ENVI &&I=2
   //从参数2开始
    LOOP #%&I% < %&LEN%,
    {
        ENVI~.  &&C=%&I%    //获取%I%参数
        LPOS &&P=%&C%,,%OLD% //OLD中查找是否
        IFEX $%&P% < 1, SHOW * ,%&C%    //没有就卸载
        CALC #&I = %&I% + 1
    }
_END

TEAM LOGS | EXEC $x.log  


[ 本帖最后由 2012abc19701 于 2012-7-8 06:56 编辑 ]

恢复性卸载.WCS.zip

549 Bytes, 下载次数: 21

回复

使用道具 举报

发表于 2012-7-8 11:10:49 | 显示全部楼层
原帖由 2012abc19701 于 2012-7-8 06:48 发表
1 卸载:
show  * ,Z
show  *- 0:1
SUBJ  *  Z:

这样一个一个的卸载。

2:用show的其它参数把以上一句加载的分区(或盘符)卸载掉?
1》先在加载前用 FDRV &&FEVIES0=*
记下原来的分区 %&FEVIES0%
...


------------------
楼主这个脚本不错。

新版的功能确实好,尤其是眼睛卫士的构思,赞一个。提交一个测试报告(BROW命令 ):
-----代码分割线------
    BROW IniS,,请选择INI文件,ini;*.txt;*.wcs, 0x884A10  //0x4000+0x10+0x800+0x80000+0x800000+0x200
    mess  IniS=[\n%IniS%]
//问题:1、多选格式后,无法单独选择一个文件;
        2、现在还没有支持文件与目录混合多选(不指定文件类型的情况下)
        3、目录多选现在还不支持(在测试中也没有发现可成功的格式)
//帮助中这里是否有冲突?
0x200为无新建文件夹按钮
0x200为可多选
-----------------

显示等宽的问题用新STRL参数已经OK了
Snap1等宽.jpg

[ 本帖最后由 988668 于 2012-7-8 11:44 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2012-7-8 13:57:46 | 显示全部楼层
实例(包内测试BROW.wcs):
WIN1
_SUB WIN1,W248H177,测试BROW,
    ITEM ITEM1,L33T20W125H30,选择多个文件,   CALL OnButton1,
    ITEM ITEM2,L33T61W125H30,选择目录或文件, CALL OnButton2,
    ITEM ITEM3,L33T99W125H30,选择1个文件, CALL OnButton3,
_END
_SUB OnButton1
    BROW IniS,C:\BOOT.INI,请选择INI文件,INI, 0x80200  //0x200
    mess  IniS=[\n%IniS%]
_END
_SUB OnButton2
    BROW FDIRS,*C:\WINDOWS,请选择目录或文件,INI, 0x4000
    mess  目录或文件=[%FDIRS%]
_END
_SUB OnButton3
    BROW Ini,C:\BOOT.INI,请选择文件,INI, //0x200
    mess  Ini=[\n%Ini%]
_END

=============
    BROW IniS,,请选择INI文件,ini;*.txt;*.wcs, 0x884A10  //0x4000+0x10+0x800+0x80000+0x800000+0x200
命令格式错了。




》》 //问题:1、多选格式后,无法单独选择一个文件;
A:可以, 见示例

》》         2、现在还没有支持文件与目录混合多选(不指定文件类型的情况下)
A:可以, 见示例

》》         3、目录多选现在还不支持(在测试中也没有发现可成功的格式)
A:没有这中功能

》》 //帮助中这里是否有冲突?
》》 0x200为无新建文件夹按钮
》》 0x200为可多选
A: 不冲突
BROW 有2种模式
前者是目录模式
后者是文件模式


[ 本帖最后由 2012abc19701 于 2012-7-8 19:56 编辑 ]
回复

使用道具 举报

发表于 2012-7-8 17:40:38 | 显示全部楼层
原帖由 2012abc19701 于 2012-7-8 13:57 发表
实例(包内测试BROW.wcs):
WIN1
_SUB WIN1,W248H177,测试BROW,
    ITEM ITEM1,L33T20W125H30,选择多个文件,   CALL OnButton1,
    ITEM ITEM2,L33T61W125H30,选择目录或文件, CALL OnButton2,
    ITE ...


--------------------使用楼主实例代码如下------------------
WIN1
_SUB WIN1,W248H177,测试BROW,
     ITEM ITEM1,L33T20W125H30,选择多个文件,   CALL OnButton1,
     ITEM ITEM2,L33T61W125H30,选择目录或文件, CALL OnButton2,
     ITEM ITEM3,L33T99W125H30,选择1个文件, CALL OnButton3,
_END
_SUB OnButton1
     //为方便区分把BROW标题加多了“多个”二字
     BROW IniS,C:\BOOT.INI,请选择多个INI文件,INI, 0x80200
     mess  IniS=[\n%IniS%]
_END
_SUB OnButton2
     BROW FDIRS,*C:\WINDOWS,请选择目录或文件,INI, 0x4000
     mess  目录或文件=[%FDIRS%]
_END
_SUB OnButton3
     BROW Ini,C:\BOOT.INI,请选择单个ini文件,INI,0x200
     mess  Ini=[\n%Ini%]
_END
//下面是操作图片说明:
操作选择1:选择多个文件
图1 Snap5目录文件多选.jpg
图2 Snap多选格式下单选.jpg
以上两操作的结果: Snap2结果无.jpg

操作选择2:选择目录或文件
图3 Snap4目录文件混合选择.jpg
结果1 Snap目录文件混合选择结果-目录.jpg
结果2 Snap目录文件混合选择结果-文件.jpg

[ 本帖最后由 988668 于 2012-7-8 17:42 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-9 04:35

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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