无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: mdyblog
打印 上一主题 下一主题

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

    [复制链接]
841#
 楼主| 发表于 2012-3-5 17:00:58 | 只看该作者

回复 #858 diannao338 的帖子

_SUB  _END  大写。
我再 U66G, 可小写。
回复

使用道具 举报

842#
 楼主| 发表于 2012-3-5 17:27:20 | 只看该作者

回复 #859 dvd008 的帖子

可以 EXEC

还可以得到其输出的结果
HELP EXEC

1:
EXEC =FORMAT.COM  /?


2:得到其输出的结果
EXEC*   &MSG=!CMD.EXE  /C  dir  C:\
MESS.   MSG=[%&MSG%]  @DIR#OK


能否调用第三方的命令行,如FORMAT.EXE /A

也实现输入参数的功能?

就像分区那样
回复

使用道具 举报

843#
 楼主| 发表于 2012-3-5 17:43:16 | 只看该作者

回复 #861 2012abc19701 的帖子

可以不用临时变量

GET_NETCARD.wcs:
//MESS -----
//LOGS *x.log
ENVI WK1=NA
CALL  GET_NETCARD  WK1
MESS 名称=%WK1% @wk1#OK *10000

_SUB GET_NETCARD
    ENVI &&&EnviMode=1  //避免意外错误,空变量,外部变量,
    TEAM SET &&W=| SET &&n=4| SET &h=0| SET &&RD1=| SET &&R1=| SET &&i1=| SET &&L1=| //定义局部变量
    exec*  &W=!cmd.exe /C ipconfig
    READ -,-1,&h,%&W%
    LOOP #%&n% < %&h%,
    {
        calc &n=%&n%+1
        READ -,%&n%,&RD1,%W%
        LSTR &R1=8,%&RD1%
        FIND $Ethernet=%&R1%, exit loop
    }
    LPOS &i1=:,1,%&RD1%
    calc &L1=%&i1%-18
    Mstr %1=18,%&L1%,%&RD1%
_END
回复

使用道具 举报

844#
发表于 2012-3-5 20:41:15 | 只看该作者
停止倒计时这样"ENVI @Timer1="好像不行了
能不能单击窗体来停止倒计时?

单窗体比方2个输入框之间能不能用Tab切换光标位置?
回复

使用道具 举报

845#
 楼主| 发表于 2012-3-5 21:23:30 | 只看该作者
我这斗正常。
双击停止定时器。可一用 MSG

双击停止定时器.wcs:
//参见  WM_消息.wcs
CALL WIN1

_SUB WIN1,W200H200, TEST1
    ENVI I=0
    LABE  LB,L10T20W100H20,--%I%--
    TIME TIMER0,1000, TEAM CALC I=%I% + 1| ENVI @LB=--%I%--
    ITEM BT,L50T50W60H30,停止,TEAM   ENVI @TIMER0=0| ENVI @LB=--%I%--按钮停止
    ENVI @WIN1.MSG=0x0203:TEAM ENVI @TIMER0=0| ENVI @LB=--%I%--双击停止
    EDIT Edit1,L32T90W120H24,11
    EDIT Edit2,L32T130W120H24,222
   
_END



回复

使用道具 举报

846#
 楼主| 发表于 2012-3-5 21:25:08 | 只看该作者

回复 #865 2012abc19701 的帖子

单击为 0x0202:
WM_LBUTTONUP                    = 0x0202
回复

使用道具 举报

847#
 楼主| 发表于 2012-3-5 21:32:07 | 只看该作者
原帖由 lmle 于 2012-3-5 10:50 发表

呵呵,用SHUTDOWN啊,弹出那个窗口挺吓人的。
还有,进入桌面后,直接运行a.bat时,先弹出第一个窗口,关闭,再弹出第二个窗口,关闭,都正常。
注册成服务(加--killwin2的),即使进入桌面后,也不保证两 ...


可以修改对话框。
在winlogon.exe: 1300

winlogon.exe 对话框1300
1.备份 winlogon.exe
2. 按下面编辑 winlogon.exe 对话框1300
3. 替换 Systen32\dllcache\winlogon.exe
4. Systen32\winlogon.exe 改名为 winlogon-old.exe ;  考入新的winlogon.exe。重启。
编辑资源,不影响执行代码,不会影响系统稳定!!!,放心!!。

======================原-BEGIN======================
1300 DIALOGEX 35, 46, 184, 139
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "系统关机"
LANGUAGE LANG_CHINESE, 0x2
FONT 9, "宋体", FW_NORMAL, FALSE, 134
{
   CONTROL "系统即将关机。请保存所有正在运行的工作,然后注销。未保存的改动将会丢失。关机是由 %s\\%s 初始的。", 1306, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 33, 11, 147, 42
   CONTROL "离关机还有 :", 102, STATIC, SS_RIGHT | WS_CHILD | WS_VISIBLE | WS_GROUP, 21, 59, 85, 8
   CONTROL "消息", 104, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 30, 73, 146, 58
   CONTROL "Text", 1305, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 36, 83, 137, 45
   CONTROL "00:00:00", 1303, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 114, 59, 41, 8
   CONTROL 32513, -1, STATIC, SS_ICON | WS_CHILD | WS_VISIBLE, 7, 12, 18, 20
}
=======================原-END=======================

======================新-BEGIN======================
1300 DIALOGEX 35, 46, 184, 139
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "提示信息          "
LANGUAGE LANG_CHINESE, 0x2
FONT 9, "宋体", FW_NORMAL, FALSE, 134
{
   CONTROL "系统即将关机。请保存所有正在运行的工作,然后注销。未保存的改动将会丢失。关机是由 %s\\%s 初始的。", 1306, STATIC, SS_LEFT | WS_CHILD | WS_GROUP, 0, 0, 1, 1
   CONTROL "离关机还有 :", 102, STATIC, SS_RIGHT | WS_CHILD | WS_GROUP, 0, 0, 1, 1
   CONTROL "", 104, BUTTON, BS_GROUPBOX | WS_CHILD, 0, 0, 1, 1
   CONTROL "Text", 1305, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 11, 3, 162, 126
   CONTROL "00:00:00", 1303, STATIC, SS_LEFT | WS_CHILD | WS_GROUP, 0, 0, 1, 1
   CONTROL 32513, -1, STATIC, SS_ICON | WS_CHILD, 0, 0, 1, 1
}
=======================新-END=======================

这里是XP的。




服务程序:
b1.bat:
@pushd %~dp0
start /wait pecmd "TEAM kill *svr2|WAIT 1050"
start PECMD  mess-svr2 这是第一个提示信息@提示1#OK
ping -n 3 127.0.0.1
start /wait pecmd WAIT 1000
start /wait pecmd "TEAM kill *svr2|WAIT 1050"
start PECMD  mess-svr2 这是第二个提示信息@提示2#OK
ping -n 3 127.0.0.1
start /wait pecmd WAIT 1000
start /wait pecmd "TEAM kill *svr2|WAIT 1050"
ping -n 30 127.0.0.1
exit

安装服务:
Setup_B1.bat:
@start /wait PECMD EXEC  /RemoveService A_TEST_Idle
@SET SHOWEWFMSG=1
PECMD EXEC  /InstallService A_TEST_Idle  --wait --killwin2 --nojob   cmd  /c %CD%\b1.bat   

@pause


效果:



附件含有上述实例,及修改好的 winlogon.exe
服务对话框2及示例.zip   //改为EXE可自解压
http://115.com/file/e7qju7dz#服务对话框2及示例.zip








[ 本帖最后由 2012abc19701 于 2012-3-5 21:40 编辑 ]
回复

使用道具 举报

848#
 楼主| 发表于 2012-3-5 22:00:52 | 只看该作者

回复 #867 2012abc19701 的帖子

下载 U66I  消息可以用有意义的名字

单击停止定时器.wcs:

IMPORT  WM_消息.wcs
CALL WIN1

_SUB WIN1,W200H200, TEST1
    ENVI I=0
    LABE  LB,L10T20W100H20,--%I%--
    TIME TIMER0,1000, TEAM CALC I=%I% + 1| ENVI @LB=--%I%--
    ITEM BT,L50T50W60H30,停止,TEAM   ENVI @TIMER0=0| ENVI @LB=--%I%--按钮停止
    ENVI @WIN1.MSG=%&WM_LBUTTONUP%:TEAM ENVI @TIMER0=0| ENVI @LB=--%I%--单击停止
    EDIT Edit1,L32T90W120H24,11
    EDIT Edit2,L32T130W120H24,222
   
_END




[ 本帖最后由 2012abc19701 于 2012-3-5 22:03 编辑 ]
回复

使用道具 举报

849#
发表于 2012-3-6 08:09:37 | 只看该作者
_SUB Windows1,W300H220,WinPE 设置,,EXPLORER.EXE#1

GROU Group2,L8T8W280H56,请选择虚拟内存所在盘
FDRV AllDrive=
LIST List2,L16T36W214H20,%AllDrive%|不设置,ENVI @List3=%List2%,不设置
ITEM Button2,L235T36W40H22,...,CALL SelectPgDrv
  
GROU Group3,L8T80W280H56,请选择临时文件所在盘
LIST List3,L16T104W214H20,%AllDrive%,,%TMPDRV%
ITEM Button3,L235T104W40H22,...,CALL SelectTmpDrv
ITEM Button1,L220T156W68H24,确定,CALL SetPE
_END

上面代码,红色部分一工作,导致list3取值为空,下拉中只有list2的值,这个显然是不对的,老九的没这个问题。这个代码的作用就是默认虚拟内存盘为临时文件盘。
回复

使用道具 举报

850#
 楼主| 发表于 2012-3-6 08:20:19 | 只看该作者

回复 #869 hhh333 的帖子

帖子怎么沉的这么快啊!
过几天都招不到了。
回复

使用道具 举报

851#
 楼主| 发表于 2012-3-6 08:41:52 | 只看该作者
原帖由 hhh333 于 2012-3-6 08:09 发表
_SUB Windows1,W300H220,WinPE 设置,,EXPLORER.EXE#1

GROU Group2,L8T8W280H56,请选择虚拟内存所在盘
FDRV AllDrive=
LIST List2,L16T36W214H20,%AllDrive%|不设置,ENVI @List3=%List2%,不设置
ITE ...


按 PECMD4.0 (2011.0501) LIST说明。
┃      │    │  无前导符表示初始化下拉列表框所有的条目,格式为 "ENVI @下拉列表框名称=条目1|条目2|条目3..."┃

ENVI @List3=%List2%
是初始化下拉列表框所有的条目。
而PECMD4.0没有完成这个功能,以至,没有清空的操作。

你要得功能为
│  前导符"+"表示向下拉列表框增加条目,格式为 "ENVI @下拉列表框名称=+新增加的条目"   
经网友反映,这个能达到你要的选择功能, 而且和别的不冲突。
本版就是这样做的。 另外有专门加了一个选择前导符":"
ENVI @List3=+%List2%   //兼容旧的,但会干点别的,很不专业
ENVI @List3=:%List2%   //PECMD2012开始的,专职选择,很专业

清空 ENVI @List3=

重置 ENVI @List3=重置列表

PECMD2012:

┃    │    │  前导符"+"表示向下拉列表框增加条目,格式为 "ENVI @下拉列表框名称=+新增加的条目"            ┃
┃    │    │  前导符"-"表示删除下拉列表框指定的条目,格式为 "ENVI @下拉列表框名称=-被删除的条目"        ┃
┃    │    │  前导符":"表示选定下拉列表框指定的条目,格式为 "ENVI @下拉列表框名称=:被选定的条目"        ┃
┃    │    │  无前导符表示初始化下拉列表框所有的条目,格式为 "ENVI @下拉列表框名称=条目1|条目2|条目3..."┃
┃    │    │  所以下拉列表框的条目内容中的第一个字符不能是 "+" "-" ":";可用变量传入。                   ┃





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

使用道具 举报

852#
发表于 2012-3-6 09:03:05 | 只看该作者
PECMD-32.2012.1除夕版.多窗口多线-U66J的版本号建议修改成PECMD-32.2012.3.5.u66J这样的比较好,不要老是除夕版的,别扭得
回复

使用道具 举报

853#
发表于 2012-3-6 09:07:56 | 只看该作者
怎么取消了置顶了,怎么回事
回复

使用道具 举报

854#
 楼主| 发表于 2012-3-6 09:18:33 | 只看该作者

回复 #871 2012abc19701 的帖子

LIST =+ 的界面更新, U66K
回复

使用道具 举报

855#
发表于 2012-3-6 09:22:26 | 只看该作者
envi W=%CurDir%\nw.txt
exec =!cmd.exe /C "ipconfig>%W%"
READ %W%,-1,h
MESS 行数=%h% @结果 #OK *10000


和4.0读取的行数不对
回复

使用道具 举报

856#
 楼主| 发表于 2012-3-6 09:32:06 | 只看该作者

回复 #873 2011hwo1 的帖子

我也纳闷啦。 你来的晚。
我上来的时候,还靠后,找了好半天,在最后几行才找到,加亮也没有了。
不知版主何意。
回复

使用道具 举报

857#
 楼主| 发表于 2012-3-6 09:32:38 | 只看该作者

回复 #872 2011hwo1 的帖子

好的。                      
回复

使用道具 举报

858#
发表于 2012-3-6 09:38:41 | 只看该作者
原帖由 2011hwo1 于 2012-3-6 09:07 发表
怎么取消了置顶了,怎么回事

置顶的东西反而看的人少吧。
回复

使用道具 举报

859#
发表于 2012-3-6 09:40:12 | 只看该作者
原帖由 2012abc19701 于 2012-3-6 09:32 发表
我也纳闷啦。 你来的晚。
我上来的时候,还靠后,找了好半天,在最后几行才找到,加亮也没有了。
不知版主何意。


貌似系统自动的,当时,设置置顶,一般有个时间限制,如,一个月.
过了自动下来.
回复

使用道具 举报

860#
 楼主| 发表于 2012-3-6 09:41:45 | 只看该作者
原帖由 diannao338 于 2012-3-6 09:22 发表
envi W=%CurDir%\nw.txt
exec =!cmd.exe /C "ipconfig>%W%"
READ %W%,-1,h
MESS 行数=%h% @结果 #OK *10000


和4.0读取的行数不对


你打开  nw.txt  数数,看看应该是多少。
回复

使用道具 举报

861#
发表于 2012-3-6 09:49:18 | 只看该作者

回复 #880 2012abc19701 的帖子

单网卡ipconfig出来 应该是10行  这里是20了(用记事本打开最后一行Ln=11)


命令越来越强大了 ,以前的看起来很简介,现在的看得晕乎乎了

[ 本帖最后由 diannao338 于 2012-3-6 09:59 编辑 ]
回复

使用道具 举报

862#
 楼主| 发表于 2012-3-6 09:53:01 | 只看该作者

回复 #880 2012abc19701 的帖子

我看了2进制码,这是  CMD.EXE的BUG。 不用理它。
一行变2行。
CMD.EXE的BUG 导致奇特怪异错误的格式。一般要么DOS换行(0 0A),要么UNIX换行(0A),没有这么变态的格式。
奇特错误的格式,没有标准的解释。不同的软件,解释不同。


UEDIT  NOTEPAD2 本PECMD  均有容错处理(孤立0D,遗漏0A均算换行),均是一行变2行。
EDITPlus, 旧PECMD  MSnotepad, 均是一行。

对于我们,不理它,就是多几个空行。

[ 本帖最后由 2012abc19701 于 2012-3-6 09:54 编辑 ]
回复

使用道具 举报

863#
发表于 2012-3-6 09:53:12 | 只看该作者
原帖由 dvd008 于 2012-3-6 09:40 发表


貌似系统自动的,当时,设置置顶,一般有个时间限制,如,一个月.
过了自动下来.

应该是版主取消了的吧,4.0的怎么就一直在置顶
回复

使用道具 举报

864#
发表于 2012-3-6 09:55:04 | 只看该作者
原帖由 2012abc19701 于 2012-3-5 21:32 发表


可以修改对话框。
在winlogon.exe: 1300

winlogon.exe 对话框1300
1.备份 winlogon.exe
2. 按下面编辑 winlogon.exe 对话框1300
3. 替换 Systen32\dllcache\winlogon.exe
4. Systen32\winlogon.ex ...

谢谢楼主提供的方法,不过我的工具不只是在自己电脑上用,而且不限于XP,修改winlogon.exe的方法不通用。
另外:EXIT怎样退出嵌套的函数(不是用LOAD载入的)?试了EXIT File、EXIT _SUB、KILL \ 等,都不成功。
已发短消息建议版主固顶,方便查阅。
回复

使用道具 举报

865#
发表于 2012-3-6 10:00:58 | 只看该作者
66369        2012-3-1 13:41         限时置顶         2012-3-5
回复

使用道具 举报

866#
 楼主| 发表于 2012-3-6 10:08:50 | 只看该作者
原帖由 lmle 于 2012-3-6 09:55 发表

谢谢楼主提供的方法,不过我的工具不只是在自己电脑上用,而且不限于XP,修改winlogon.exe的方法不通用。
另外:EXIT怎样退出嵌套的函数(不是用LOAD载入的)?试了EXIT File、EXIT _SUB、KILL \ 等,都不成 ...


退出嵌套的函数必须用变量标志。

退出嵌套的函数.WCS:
CALL  F1
MESS  END


_SUB   F1
  ENVI &&RUN=1  //定义局部变量,运行标志, 不影响外部变量
  MESS -F1/1--
  CALL F1_1
  FIND $1=%&RUN%,! EXIT _SUB
  MESS -F1/2--看不到我
_END

_SUB   F1_1
  MESS -F1_1/1--
  CALL F1_1_1
  FIND $1=%&RUN%,! EXIT _SUB
  MESS -F1_1/2--看不到我
_END

_SUB   F1_1_1
  MESS -F1_1_1/1--
  TEAM ENVI  &RUN=0| EXIT _SUB
  MESS -F1_1_1/2--看不到我
_END
  
回复

使用道具 举报

867#
发表于 2012-3-6 10:46:09 | 只看该作者
envi WK2=
LIST List1,L90T20W100H18,%WK1%|%WK2%,,%WK1%


当下拉列表项目2为空 时, 列表中不应该出现空行

(老版本4.0这样没问题,不知道"为空"是不是改了)


单击窗体内的编辑框(EDIT)停止倒计时 的   ??????

[ 本帖最后由 diannao338 于 2012-3-6 11:10 编辑 ]
回复

使用道具 举报

868#
发表于 2012-3-6 10:51:26 | 只看该作者
原帖由 2012abc19701 于 2012-3-6 10:08 发表


退出嵌套的函数必须用变量标志。

退出嵌套的函数.WCS:
CALL  F1
MESS  END

_SUB   F1
  ENVI &&RUN=1  //定义局部变量,运行标志, 不影响外部变量
  MESS -F1/1--
  CALL F1_1
  FIND $1=%&R ...

谢谢,明白了。工具基本完工。

[ 本帖最后由 lmle 于 2012-3-6 11:19 编辑 ]
回复

使用道具 举报

869#
发表于 2012-3-6 11:02:45 | 只看该作者
RAMD应该支持IMDISK,目前似乎不行,只能用IMDISK.EXE,不太方便。
回复

使用道具 举报

870#
 楼主| 发表于 2012-3-6 12:25:18 | 只看该作者

回复 #881 diannao338 的帖子

226#821楼 U66L   READ/WRIT换行判定和旧PECMD兼容,原有功能*fix打开。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-9-28 03:46

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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