无忧启动论坛

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

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

    [复制链接]
6931#
 楼主| 发表于 2013-12-2 13:13:22 | 只看该作者
hhh333 发表于 2013-12-2 11:27
这个我真的理解不了,也很容易出错,建议不用!!,!总是与其最近的IFEX或FIND匹配,或者干脆用上else ...

这是对原始的IFEX/FIND 的修正。 原来 !作为ELSE 的标志。
1. 单行:逗号后直接接!或!!   这样不解释后面的!
(1) 如果 甲,那么 乙
此时逗号后直接接!!,  表示没有ELSE(假)部分。
IFEX/FIND  甲,!!   乙

(2) 如果 非甲,那么 乙
此时逗号后直接接!,  表示没有IF(真)部分,只有ELSE(假)部分。
IFEX/FIND  甲,!    乙

2. 最好的方发是用{}分行的扩展方法
(1) 如果 甲,那么 乙;否则 丙
IFEX/FIND  甲,
{
   乙
}!
{
   丙
}
可以只有一部分
(2) 如果 甲,那么 乙
IFEX/FIND  甲,
{
   乙
}

(3) 如果 非甲,那么 乙
IFEX/FIND  甲,!     
{
   乙
}



{}也适用 LOOP/FORX/单用 等
PECMD  HELP BLOCK

点评

目前!有几种情况 !与“ifex”或“find”配合相当于else !与“=”号配合表示不等于符 !在“EXEC”后表示以隐藏方式运行 而后两种语法上比较容易解释,但第一种情况再加进来,就麻烦了。我是强烈建议先引入EL  详情 回复 发表于 2013-12-3 12:01
回复

使用道具 举报

6932#
 楼主| 发表于 2013-12-3 01:06:12 | 只看该作者
freesoft00 发表于 2013-12-1 14:54
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=315277&highlight=

在chiannet发布的pe帖子中 ...

PECMD2012.1.80.13-130810.多窗口线程稳定版_win32_64新设计.sfx.zip
AB软盘、SD卡、手机   不会弹出 没有插盘  提示。
另外: *ab 开关可以跳开 AB软盘。
FORX *ab   ...
IFEX*ab     ...
回复

使用道具 举报

6933#
发表于 2013-12-3 12:01:37 | 只看该作者
mdyblog 发表于 2013-12-2 13:13
这是对原始的IFEX/FIND 的修正。 原来 !作为ELSE 的标志。
1. 单行:逗号后直接接!或!!   这样不解释后 ...

目前!有几种情况
!与“ifex”或“find”配合相当于else
!与“=”号配合表示不等于符
!在“EXEC”后表示以隐藏方式运行
而后两种语法上比较容易解释,但第一种情况再加进来,就麻烦了。我是强烈建议先引入ELSE关键词,再取消!代替ELSE的用法。请作者慎重考虑。

点评

1. 【!与“ifex”或“find”配合相当于else】 这恰是 最初的 PECMD 的设计,最基本的功能, PECMD4.0 等都支持。 去掉这个功能, 以前很多 代码都没法运行了。 兼容就代码重要啊!!!! 你说的 ELSE 格  详情 回复 发表于 2013-12-3 15:54
回复

使用道具 举报

6934#
 楼主| 发表于 2013-12-3 15:54:13 | 只看该作者
本帖最后由 mdyblog 于 2013-12-3 15:56 编辑
hhh333 发表于 2013-12-3 12:01
目前!有几种情况
!与“ifex”或“find”配合相当于else
!与“=”号配合表示不等于符


1.
【!与“ifex”或“find”配合相当于else】
这恰是 最初的 PECMD 的设计,最基本的功能, PECMD4.0 等都支持。
去掉这个功能,  以前很多 代码都没法运行了
兼容就代码重要啊!!!!

你说的  ELSE 格式, 已经有了, 就是 {}
IFEX  甲,
{
   乙
}!
{
  丙
}
这个随便怎么嵌套,看起来一目了然。


2.
!和  EXEC 配合 为隐藏;建议 用*号或 --hide 开关。省得和IFEX/FIND冲突
EXEC*   &&V=*cmd /c  ver
EXEC*  --hide   &&V=cmd /c  ver

3.
!=   建议用 <>  表示。 省得和IFEX/FIND冲突
IFEX  $1<>%X%,    .......

4:
(1)这样  !专门给 IFEX/FIND 用。

(2)如果只有半边IF、ELSE ,一定用 【,!!】 【,!】 ,养成这个习惯。
冲突就小了。
IFEX  甲,!!    乙
IFEX  甲,!     乙

回复

使用道具 举报

6935#
发表于 2013-12-5 09:33:54 | 只看该作者
楼主辛苦了,自己的PE目前用的是1.77版的,很稳定。下载测试一下新版
回复

使用道具 举报

6936#
发表于 2013-12-6 02:38:59 | 只看该作者
WimKit基于WIMGAPI 开发,不依赖于ImageX
现在win8使用的人还是挺多的,而且现在win8下的dism比之前的image功能强大,请各位大神在dism基础上开发何图形化的工具,方便小白使用。谢谢了!
完美的彻底删除更新,同时不影响SFC!(该功能基于Dism SDK安全有保障,同时秒杀微软的更新清理)

------------------------------------------
pecmd是否可以加上imagex和dism等的功能,这样操作就不需要这些文件了,如果可以实现顺便可以做一个图形界面方便操作。

点评

PECMD 已经之际支持部分 WIM 的功能, 加载、卸载、查询: ┃ │格式│MOUN [*u] [!][Wim路径],,[映像ID],[Wim临时工作目录] ┃ ┃ │格式│MOUN *query 变量名[=rw][,Mount目标  详情 回复 发表于 2013-12-6 18:50
回复

使用道具 举报

6937#
发表于 2013-12-6 02:48:03 | 只看该作者
试着看说明学习pecmd,帮助文档感觉不太详细,有些都没有介绍的以及示例如何用。
比如part命令中的

有很多地方一带而过,或者描述很简略,作者自己肯定明白,如果没有什么编程或者编写脚本经验的人看,有点一头雾水的感觉,pecmd现在已经很强大了,帮助文档能再改进写就好了。

点评

是呀! 有谁有时间来写写, 搞个CHM 文件。 把HELP.TXT 丰富一下。  详情 回复 发表于 2013-12-6 18:52
回复

使用道具 举报

6938#
发表于 2013-12-6 14:20:43 | 只看该作者
回复

使用道具 举报

6939#
 楼主| 发表于 2013-12-6 18:50:57 | 只看该作者
freesoft00 发表于 2013-12-6 02:38
------------------------------------------
pecmd是否可以加上imagex和dism等的功能,这样操作就 ...

PECMD 已经之际支持部分 WIM 的功能, 加载、卸载、查询:
┃    │格式│MOUN [*u] [!][Wim路径],<Mount目标目录>,[映像ID],[Wim临时工作目录]                           ┃
┃    │格式│MOUN *query 变量名[=rw][,Mount目标目录]                                                     ┃

imagex.exe  dism 可以用EXEC 来调用。

   EXEC  =!ImageX.exe ... ...

也可以 内置到PECMD资源中;
如资源200为Imagex.exe:
  EXEC  --exe:*#200   =!MyImageX   ... ...
这样PECMD  就自带 Imagex了, 不需要外部ImageX。就像内置功能一样使用。
DISM 同样。


示例中的 BCDTool.EXE 就是内置了bcdedit.exe

回复

使用道具 举报

6940#
 楼主| 发表于 2013-12-6 18:52:40 | 只看该作者
freesoft00 发表于 2013-12-6 02:48
试着看说明学习pecmd,帮助文档感觉不太详细,有些都没有介绍的以及示例如何用。
比如part命令中的

是呀!
有谁有时间来写写, 搞个CHM 文件。
把HELP.TXT 丰富一下。

回复

使用道具 举报

6941#
发表于 2013-12-6 19:13:43 | 只看该作者
dism的话还需要附带很多模块文件的吧,否则单独的一个这个文件无法运行吧。

点评

好像还需要安装。 有个什么服务吧。 文件到考到XP下,无法运行。 还是 WIM驱动/IMAGEX/PECMD 小巧点。  详情 回复 发表于 2013-12-7 12:01
回复

使用道具 举报

6942#
发表于 2013-12-6 19:16:23 | 只看该作者
一段时间作者和dvd008会员交互很频繁,dvd008的特点就是说话简略的不得了,有时候真的不知道在说的是什么,之后呢我发现你也是这个说话语调了,不知道是否原来就是这样。所以说明中的介绍真的有很多地方说的实在是不明白,也许是我本人基础太低了
回复

使用道具 举报

6943#
 楼主| 发表于 2013-12-7 12:01:48 | 只看该作者
freesoft00 发表于 2013-12-6 19:13
dism的话还需要附带很多模块文件的吧,否则单独的一个这个文件无法运行吧。

好像还需要安装。 有个什么服务吧。
文件到考到XP下,无法运行。
还是  WIM驱动/IMAGEX/PECMD 小巧点。
回复

使用道具 举报

6944#
发表于 2013-12-7 12:59:43 | 只看该作者
谢谢,更新一下!
回复

使用道具 举报

6945#
发表于 2013-12-7 20:00:21 | 只看该作者
PECMD2012.1.80.13.01-130810.多窗口线程稳定版_win32_64新设计.sfx
这个版本64位PECMD好像不能关机和重启。
PECMD2012.1.78.20.01-130510.多窗口线程稳定版_win32_64.sfx
这个版本的可以

点评

最新版本是:PECMD2012.1.80.14 PECMD2012.1.78.21 最新版本 始终 在这2个目录中: PECMD2012.1.80最新[/backcolor] PECMD2012.1.78最新[/backcolor] PECMD2012.1.80.13.01  详情 回复 发表于 2013-12-7 21:36
回复

使用道具 举报

6946#
 楼主| 发表于 2013-12-7 21:36:04 | 只看该作者
2010hktk 发表于 2013-12-7 20:00
PECMD2012.1.80.13.01-130810.多窗口线程稳定版_win32_64新设计.sfx
这个版本64位PECMD好像不能关机和重 ...

最新版本是:PECMD2012.1.80.14  
            PECMD2012.1.78.21  


最新版本 始终 在这2个目录中:
      PECMD2012.1.80最新

      PECMD2012.1.78最新


PECMD2012.1.80.13.01 已经删除了 。

回复

使用道具 举报

6947#
发表于 2013-12-8 21:31:43 | 只看该作者
备份恢复WINDOWS6B运行后退出进程不会退出

点评

http://pan.baidu.com/s/1AGoF5# 备份恢复WINDOWS6C.zip  详情 回复 发表于 2013-12-8 23:31
回复

使用道具 举报

6948#
 楼主| 发表于 2013-12-8 23:31:34 | 只看该作者
本帖最后由 mdyblog 于 2013-12-9 12:26 编辑
freesoft00 发表于 2013-12-8 21:31
备份恢复WINDOWS6B运行后退出进程不会退出


http://pan.baidu.com/s/11mP3H# 备份恢复WINDOWS6C.zip
回复

使用道具 举报

6949#
发表于 2013-12-10 13:58:55 | 只看该作者
谢谢楼主分享~~!
回复

使用道具 举报

6950#
发表于 2013-12-11 15:35:22 | 只看该作者
有才 啊  支持
回复

使用道具 举报

6951#
发表于 2013-12-11 18:39:10 | 只看该作者
本帖最后由 caocaofff 于 2013-12-12 07:33 编辑

将一变量赋值到粘贴板的命令怎么写?还有清空粘贴板的命令?

点评

┃ │ │※剪切板: ENVI^ Clipboard=字符串 //支持变量 ┃ ┃ │ │※剪切板: ENVI^ Clipboard?=变量名 //查询  详情 回复 发表于 2013-12-14 14:13
回复

使用道具 举报

6952#
发表于 2013-12-14 07:40:04 | 只看该作者
最新版本80.14有问题:
1、登录到桌面以后再TEXT会有重影
2、64位一直有一个问题,做出的窗体中,点确定等命令按钮它不会有反应或者延时几秒钟才有反应,但如果将窗口移动一下,它立即就有反应。这次这个问题依旧,但这次更严重,双击执行一个产生窗体的脚本时无反应,要到桌面其他地方击鼠标才出窗体。
3、这次怎么体积增大10k,加了什么功能?

点评

》》1、登录到桌面以后再TEXT会有重影 WIN8不同, 需要 LOGO ** LOGO *top ** //为TEXT命令准备一块画布 TEXT 1**6 》》 2、64位一直有一个问题,做出的窗体中,点确定等命令按钮它不会有反应或  详情 回复 发表于 2013-12-14 14:18
增大10k: 加了几个 PBR 资源。  详情 回复 发表于 2013-12-14 14:15
回复

使用道具 举报

6953#
发表于 2013-12-14 13:11:10 | 只看该作者
回复

使用道具 举报

6954#
 楼主| 发表于 2013-12-14 14:13:14 | 只看该作者
caocaofff 发表于 2013-12-11 18:39
将一变量赋值到粘贴板的命令怎么写?还有清空粘贴板的命令?

┃    │    │※剪切板: ENVI^ Clipboard=字符串      //支持变量                                           ┃
┃    │    │※剪切板: ENVI^ Clipboard?=变量名     //查询                                               ┃
ENVI  ABC=1**67890 XXXX
ENVI^ Clipboard=%ABC%


清空粘贴板:

ENVI^ Clipboard=



回复

使用道具 举报

6955#
 楼主| 发表于 2013-12-14 14:15:05 | 只看该作者
hhh333 发表于 2013-12-14 07:40
最新版本80.14有问题:
1、登录到桌面以后再TEXT会有重影
2、64位一直有一个问题,做出的窗体中,点确定 ...

增大10k:
加了几个 PBR 资源。
回复

使用道具 举报

6956#
 楼主| 发表于 2013-12-14 14:18:48 | 只看该作者
本帖最后由 mdyblog 于 2013-12-14 18:38 编辑
hhh333 发表于 2013-12-14 07:40
最新版本80.14有问题:
1、登录到桌面以后再TEXT会有重影
2、64位一直有一个问题,做出的窗体中,点确定 ...

》》1、登录到桌面以后再TEXT会有重影
WIN8不同, 需要 LOGO  **

LOGO *top  **    //为TEXT命令准备一块画布
TEXT   ABCDEF


》》 2、64位一直有一个问题,做出的窗体中,点确定等命令按钮它不会有反应或者延时几秒钟才有反应,但如果将窗口移动一下,它立即就有反应。这次这个问题依旧,但这次更严重,双击执行一个产生窗体的脚本时无反应,要到桌面其他地方击鼠标才出窗体。
问题也太奇怪了!!! 我也用过 PE-64测试过。
建议你换个 PE-64 ,试试你的代码。
不行的话, 给个演示 PE 和测试代码吧。(测试代码简单点,不要超过20行)
----------------------------------
我又测试了下,正常,点OK,立即反应。 网上下载的纯64位8PE:Win8PE64.ISO 。   aa.wcs:
CALL @WIN1
_SUB  WIN1,W400H300,PECMD%&PECMDVER%
       ITEM Button3,L132T108W100H54,OK, MESS  OK@  #OK
_END


点评

刚才试了最新14号的版本,开启窗口慢好象改善了一点点,但开启后点确定无反应,但移动一下窗口或者在桌面其他地方点一下就立即执行,这个很诡异的现象还是存在。用其他64位也有。当然这个现象有时也不是每次出现。经  详情 回复 发表于 2013-12-14 23:09
回复

使用道具 举报

6957#
发表于 2013-12-14 23:09:54 | 只看该作者
mdyblog 发表于 2013-12-14 14:18
》》1、登录到桌面以后再TEXT会有重影
WIN8不同, 需要 LOGO  **

刚才试了最新14号的版本,开启窗口慢好象改善了一点点,但开启后点确定无反应,但移动一下窗口或者在桌面其他地方点一下就立即执行,这个很诡异的现象还是存在。用其他64位也有。当然这个现象有时也不是每次出现。经过仔细测试,原来是快捷方式引起,如果点右键用PECMD运行就不出现,但如果建立PECMD TEST.INI的快捷方式来执行就会出现这种怪现象。以下为我的代码:
  1. _SUB CancelButt        `窗体共用的计时退出代码
  2.         CALC #Result=%TT%-1
  3.         ENVI TT=%Result%
  4.         ENVI @Button1=确定(%TT%秒)
  5.         IFEX $%TT%<1,TEAM ENVI @Timer1=0|KILL \
  6. _END

  7. _SUB ManulSetLoadMode,W450H450,请选定维护模式(外置位置:%IniDiskType% %IniDir%),,SHELL32.DLL#21
  8.         ENVI TT=30        `TT为窗口停留时间
  9.         ENVI V0=0--纯内核          128MB
  10.         ENVI V1=1--基本维护        256MB
  11.         ENVI V2=2--网络维护        512MB
  12.         ENVI V3=3--影音播放        768MB
  13.         ENVI V4=4--办公系统        1024MB
  14.         ENVI VREM0=模式0:进行基本的文件操作。
  15.         ENVI VREM1=模式1:系统分区、安装、克隆、破密、数据救援。
  16.         ENVI VREM2=模式2:局域网维护、IE、迅雷、QQ,请驱动网卡!
  17.         ENVI VREM3=模式3:影音播放、图形处理,推荐驱动显、声、网卡。
  18.         ENVI VREM4=模式4:WPS2009、附加输入法,推荐启用三卡和打印机驱动。
  19.         ENVI VREMNEWWIM=W7/8驱动:支持多媒体,但要占与未压缩前等量内存。
  20.         ENVI VREMOLDWIM=XP03驱动:播放器可能异常,但总不占内存。

  21.         TEAM ENVI $CM_NET=0|ENVI RM_LAN=1|ENVI RM_PPP=0|ENVI RM_WAN=0|ENVI RM_RLT=1|ENVI RM_VBE=0|ENVI CM_PRT=0|ENVI CM_DX9=0

  22.         `按记忆值设置选定的单选按钮       
  23.         IFEX $%OLDMODE%<1,TEAM ENVI VREM=%VREM0%|ENVI R0=1!ENVI R0=0
  24.         IFEX $%OLDMODE%=1,TEAM ENVI VREM=%VREM1%|ENVI R1=1!ENVI R1=0
  25.         IFEX $%OLDMODE%=2,TEAM ENVI VREM=%VREM2%|ENVI R2=1!ENVI R2=0
  26.         IFEX $%OLDMODE%=3,TEAM ENVI VREM=%VREM3%|ENVI R3=1!ENVI R3=0
  27.         IFEX $%OLDMODE%=4,TEAM ENVI VREM=%VREM4%|ENVI R4=1!ENVI R4=0

  28.         `Wim驱动版本选择参数设定
  29.         IFEX $%OldNewWim%=1,TEAM ENVI RM_NEW=1|ENVI RM_OLD=0!TEAM ENVI RM_NEW=0|ENVI RM_OLD=1
  30.         IFEX $%ISNT6%=0,TEAM CALC #RM_NEW=%RM_NEW%-2|CALC #RM_OLD=%RM_OLD%-2
  31.         IFEX $%OLDMODE%<0,!TEAM CALC #RM_NEW=%RM_NEW%-2|CALC #RM_OLD=%RM_OLD%-2
  32.        
  33.         `文件不存在按钮变灰
  34.         IFEX $%ExistWIMDRV%<0,TEAM ENVI $CM_NET=-2|ENVI $CM_SND=-2|ENVI $CM_DSP=-2|ENVI $CM_PRT=-2|ENVI $CM_DX9=-2|ENVI RM_LAN=-1|ENVI RM_PPP=-2|ENVI RM_WAN=-2|ENVI RM_RLT=-1|ENVI RM_VBE=-2|ENVI CM_PRT=-2|ENVI CM_DX9=-2
  35.         IFEX $%ExistWIM1%<0,ENVI R1=-2
  36.         IFEX $%ExistWIM2%<0,ENVI R2=-2
  37.         IFEX $%ExistWIM3%<0,ENVI R3=-2
  38.         IFEX $%ExistWIM4%<0,ENVI R4=-2
  39.         ENVI CM2=%ExistWIMUOP%
  40.         IFEX $%IniReadOnly%>0,ENVI CM3=-2!ENVI CM3=0

  41.         `已驱动过一次则三卡按钮变灰
  42.         IFEX %WinDir%\LD_NET_WAN.OK,ENVI RM_WAN=-2
  43.         IFEX %WinDir%\LD_NET_LAN.OK,ENVI RM_LAN=-2
  44.         IFEX %WinDir%\LD_NET_PPP.OK,ENVI RM_PPP=-2
  45.         IFEX $%RM_WAN%=-2,IFEX $%RM_LAN%=-2,IFEX $%RM_PPP%=-2,ENVI $CM_NET=-2
  46.         IFEX %WinDir%\LD_SND.OK,ENVI CM_SND=-2
  47.         IFEX %WinDir%\LD_DSP.OK,TEAM ENVI CM_DSP=-2|ENVI RM_RLT=-1|ENVI RM_VBE=-2
  48.         IFEX %WinDir%\LD_PRT.OK,ENVI CM_PRT=-2
  49.         IFEX %WinDir%\LD_DX9.OK,ENVI CM_DX9=-2
  50.         IFEX $%ISNT6%=1,ENVI RM_VBE=-2

  51.         GROU Group0,L12T2W420H215,模式选择
  52.         `LABE Label1,L45T18W80H16,装载模式
  53.         LABE Label1,L150T18W80H16,推荐内存
  54.         LABE Label1,L300T18W80H16,驱动支撑

  55.         LABE lblline,L32T30W390H17,-----------------------------------------------------------------
  56.         RADI RadioButton0,L32T40W200H20,%V0%,TEAM ENVI @Timer1=0|ENVI @lblVREM=%VREM0%|ENVI @Check_NET.Check=0|ENVI @Check_DSP.Check=0|ENVI @Check_SND.Check=0|ENVI @Check_PRT.Check=0,%R0%
  57.         CHEK Check_NET,L240T40W80H20,驱动网卡→,ENVI @Timer1=0,%CM_NET%       
  58.         RADI RadioNetLAN,L330T40W40H16,有线,ENVI @Timer1=0,%RM_LAN%,1
  59.         RADI RadioPPPOE,L375T40W40H16,宽带,ENVI @Timer1=0,%RM_PPP%,1
  60.         RADI RadioNetWAN,L330T55W80H16,无线,ENVI @Timer1=0,%RM_WAN%,1

  61.         RADI RadioButton1,L32T70W200H20,%V1%,TEAM ENVI @Timer1=0|ENVI @lblVREM=%VREM1%|ENVI @Check_NET.Check=0|ENVI @Check_DSP.Check=0|ENVI @Check_SND.Check=0|ENVI @Check_PRT.Check=0,%R1%
  62.         CHEK Check_DSP,L240T70W80H20,驱动显卡→,TEAM ENVI @Timer1=0,%CM_DSP%       
  63.         RADI RadioDSPRLT,L330T70W80H16,真实驱动,ENVI @Timer1=0,%RM_RLT%,2
  64.         RADI RadioDSPVBE,L330T85W80H16,万能驱动,ENVI @Timer1=0,%RM_VBE%,2

  65.         RADI RadioButton2,L32T100W200H20,%V2%,TEAM ENVI @Timer1=0|ENVI @lblVREM=%VREM2%|ENVI @Check_NET.Check=1|ENVI @Check_DSP.Check=0|ENVI @Check_SND.Check=0|ENVI @Check_PRT.Check=0,%R2%
  66.         CHEK Check_SND,L240T100W80H20,驱动声卡,ENVI @Timer1=0,%CM_SND%       

  67.         RADI RadioButton3,L32T130W200H20,%V3%,TEAM ENVI @Timer1=0|ENVI @lblVREM=%VREM3%|ENVI @Check_NET.Check=0|ENVI @Check_DSP.Check=1|ENVI @Check_SND.Check=1|ENVI @Check_PRT.Check=0,%R3%
  68.         CHEK Check_PRT,L240T130W80H20,驱动打印机,ENVI @Timer1=0,%CM_PRT%       
  69.         ENVI DXV=DX9支持
  70.         FIND $%BootOS%=W7,ENVI DXV=DX11支持
  71.         FIND $%BootOS%=W8,ENVI DXV=DX11.1支持
  72.         RADI RadioButton4,L32T160W200H20,%V4%,TEAM ENVI @Timer1=0|ENVI @lblVREM=%VREM4%|ENVI @Check_NET.Check=1|ENVI @Check_DSP.Check=1|ENVI @Check_SND.Check=1|ENVI @Check_PRT.Check=1,%R4%
  73.         CHEK Check_DX9,L240T160W80H20,%DXV%,,%CM_DX9%       

  74.         GROU Group3,L325T110W100H70,选择Wim驱动
  75.         RADI RadioNewWim,L330T130W90H16,W7/8驱动,TEAM ENVI @Timer1=0|ENVI @lblVREM=%VREMNEWWIM%,%RM_NEW%,3
  76.         RADI RadioOldWim,L330T160W90H16,XP03驱动,TEAM ENVI @Timer1=0|ENVI @lblVREM=%VREMOLDWIM%,%RM_OLD%,3
  77.        
  78.         LABE lblline,L32T180W390H17,-----------------------------------------------------------------
  79.         LABE lblVREM,L32T195W385H17,%VREM%
  80.        
  81.         GROU Group2,L12T210W420H110
  82.         LABE Label2,L32T232W190H20,设置临时文件目录TEMP所在盘为
  83.         FDRV AllDrive=
  84.         FDRV CurTmpDrv=%TEMP%
  85.         LIST ListDrv,L212T230W100H120,%AllDrive%,ENVI @Timer1=0,%CurTmpDrv%
  86.         ITEM Button3,L317T230W30H22,...,TEAM ENVI sMSG=请选择临时文件存放的盘:|CALL SelectDrv
  87.         CHEK Check2,L32T260W330H20,装载用户自制工具程序..【由\H3PE下的 UOP.WIM 定义】,ENVI @Timer1=0,%CM2%
  88.         CHEK Check3,L32T290W330H20,重启后按以上方式操作..【不选则清除上次保存的配置】,ENVI @Timer1=0,%CM3%
  89.         LABE Label3,L20T330W400H35,提示1.选择后面的模式自动包括前面的程序,退出则由程序根据以上推荐内存容量自动选择装载模式。
  90.         LABE Label4,L20T360W400H35,  2.保存配置后,下次启动将取消按Ctrl键呼出本选单功能,进PE系统后重新装载本选单,通过清除配置可恢复Ctrl键功能。
  91.        
  92.         TEAM ENVI V0=|ENVI V1=|ENVI V2=|ENVI V3=|ENVI V4=
  93.         TEAM ENVI R0=|ENVI R1=|ENVI R2=|ENVI R3=|ENVI R4=|ENVI R4=|ENVI CM2=|ENVI CM3=
  94.         TEAM ENVI VREM0=|ENVI VREM1=|ENVI VREM2=|ENVI VREM3=|ENVI VREM4=|ENVI VREM=
  95.         TEAM ENVI AllDrive=|ENVI CurTmpDrv=
  96.         ITEM Button1,L320T395W88H24,确定,CALL CheckMode
  97.         TIME Timer1,1000,CALL CancelButt
  98. _END

  99. _SUB CheckMode        `上述“确定”按钮
  100.         ENVI SELECTMODE=手动选择
  101.         IFEX $%RadioButton0.Check%=1,ENVI $LOADMODE=0
  102.         IFEX $%RadioButton1.Check%=1,ENVI $LOADMODE=1
  103.         IFEX $%RadioButton2.Check%=1,ENVI $LOADMODE=2
  104.         IFEX $%RadioButton3.Check%=1,ENVI $LOADMODE=3
  105.         IFEX $%RadioButton4.Check%=1,ENVI $LOADMODE=4
  106.         ENVI LOADUOP=%Check2.Check%
  107.         ENVI TMPDRV=%ListDrv%
  108.         ENVI $CM_SND=%Check_SND.Check%
  109.         ENVI $CM_PRT=%Check_PRT.Check%
  110.         ENVI $CM_DX9=%Check_DX9.Check%

  111.         IFEX $%RadioNetLAN.Check%=1,ENVI $CM_NET=1
  112.         IFEX $%RadioPPPOE.Check%=1,ENVI $CM_NET=2
  113.         IFEX $%RadioNetWAN.Check%=1,ENVI $CM_NET=3
  114.         IFEX $%RadioDSPRLT.Check%=1,ENVI $CM_DSP=1
  115.         IFEX $%RadioDSPVBE.Check%=1,ENVI $CM_DSP=2
  116.         IFEX $%Check_NET.Check%=0,ENVI $CM_NET=0
  117.         IFEX $%Check_DSP.Check%=0,ENVI $CM_DSP=0

  118.         IFEX $%RadioNewWim.Enable%>0,IFEX $%RadioNewWim.Check%=1,IFEX $%OldNewWim%=0,ENVI CurNewWim=1
  119.         IFEX $%RadioOldWim.Enable%>0,IFEX $%RadioOldWim.Check%=1,IFEX $%OldNewWim%=1,ENVI CurNewWim=0

  120.         `如果复选框为灰色则置贮存Check状态值的变量为0
  121.         IFEX $%Check_NET.Enable%=0,ENVI $CM_NET=0
  122.         IFEX $%Check_SND.Enable%=0,ENVI $CM_SND=0
  123.         IFEX $%Check_DSP.Enable%=0,ENVI $CM_DSP=0
  124.         IFEX $%Check_PRT.Enable%=0,ENVI $CM_PRT=0
  125.         IFEX $%Check_DX9.Enable%=0,ENVI $CM_DX9=0

  126.         `保存配置
  127.         IFEX $%Check3.Check%=1,TEAM EXEC =*CMD.EXE /C "ECHO ENVI $LOADMODE=%LOADMODE% >%CFG%"|EXEC =*CMD.EXE /C "ECHO ENVI LOADUOP=%LOADUOP% >>%CFG%"|EXEC =*CMD.EXE /C "ECHO ENVI TMPDRV=%TMPDRV% >>%CFG%"|EXEC =*CMD.EXE /C "ECHO ENVI $CM_NET=%CM_NET% >>%CFG%"|EXEC =*CMD.EXE /C "ECHO ENVI $CM_SND=%CM_SND% >>%CFG%"|EXEC =*CMD.EXE /C "ECHO ENVI $CM_DSP=%CM_DSP% >>%CFG%"|EXEC =*CMD.EXE /C "ECHO ENVI $CM_PRT=%CM_PRT%|EXEC =*CMD.EXE /C "ECHO ENVI $CM_DX9=%CM_DX9% >>%CFG%"!IFEX %CFG%,FILE %CFG%
  128.         KILL \
  129. _END
  130. CALL ManulSetLoadMode
复制代码

点评

ENVI $后台 的功能 内置了 201201.80.14.04 201201.78.21.03 EVNI [$][#][-]【*】[名称]=值 前导"$"表示设置系统级环境变量,"#"表示设置用户级环境变量,可同时用;均广播所有程序,5秒等待超 时,且系  详情 回复 发表于 2013-12-16 01:01
窗口中划线 : LABE+ ,L32T187W390H1, //LABE+ 划横线 LABE+ ,L26T42W1H166,, //LABE+ 划竖线 Explorer 重启后,窗口托盘 如何重启? _SUB WIN1,W289H244, 测试 ENVI @this.MSG=_%&WM_TaskbarRest  详情 回复 发表于 2013-12-15 14:27
回复

使用道具 举报

6958#
 楼主| 发表于 2013-12-15 11:57:13 | 只看该作者
本帖最后由 mdyblog 于 2013-12-15 15:45 编辑
hhh333 发表于 2013-12-14 23:09
刚才试了最新14号的版本,开启窗口慢好象改善了一点点,但开启后点确定无反应,但移动一下窗口或者在桌面 ...

记得我优化过这段代码。
慎用 ENVI $ ENVI #
前导"$"表示设置系统级环境变量,"#"表示设置用户级环境变量,可同时用;均广播所有程序(5秒等待超时)
而且导致系统很忙!!

ENVI $A=1 2 3
用多线程去慢慢玩吧,写为  
TEAM   ENVI A=1 2 3|  THREAD*   ENVI $A=1 2 3
这里有个 辅助函数,
//ENVIGDelay 非阻塞设置全局变量
//    最后    【THREAD* ENVI】 或 【ENVI】一次系统同步,系统不忙
//ENVIGDelay  <$|#>名字=值

如:
ENVIGDelay   $A= 123
ENVIGDelay   #B= 123
ENVIGDelay   $C= 123
THREAD* ENVI
优化代码如下及附件。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
ENVI^  EnviMode=1 //防止灵异事件!!
_SUB CancelButt        `窗体共用的计时退出代码
        CALC #Result=%TT%-1
        ENVI TT=%Result%
        ENVI @Button1=确定(%TT%秒)
        IFEX $%TT%<1,TEAM ENVI @Timer1=0|KILL \
_END

_SUB ManulSetLoadMode,W450H450,请选定维护模式(外置位置:%IniDiskType% %IniDir%),,SHELL32.DLL#21
        ENVI TT=30        `TT为窗口停留时间
        ENVI V0=0--纯内核          128MB
        ENVI V1=1--基本维护        256MB
        ENVI V2=2--网络维护        512MB
        ENVI V3=3--影音播放        768MB
        ENVI V4=4--办公系统        1024MB
        ENVI VREM0=模式0:进行基本的文件操作。
        ENVI VREM1=模式1:系统分区、安装、克隆、破密、数据救援。
        ENVI VREM2=模式2:局域网维护、IE、迅雷、QQ,请驱动网卡!
        ENVI VREM3=模式3:影音播放、图形处理,推荐驱动显、声、网卡。
        ENVI VREM4=模式4:WPS2009、附加输入法,推荐启用三卡和打印机驱动。
        ENVI VREMNEWWIM=W7/8驱动:支持多媒体,但要占与未压缩前等量内存。
        ENVI VREMOLDWIM=XP03驱动:播放器可能异常,但总不占内存。

        TEAM ENVIGDelay $CM_NET=0|ENVI RM_LAN=1|ENVI RM_PPP=0|ENVI RM_WAN=0|
            \ ENVI RM_RLT=1|ENVI RM_VBE=0|ENVI CM_PRT=0|ENVI CM_DX9=0

        `按记忆值设置选定的单选按钮        
        IFEX $%OLDMODE%<1,TEAM ENVI VREM=%VREM0%|ENVI R0=1!ENVI R0=0
        IFEX $%OLDMODE%=1,TEAM ENVI VREM=%VREM1%|ENVI R1=1!ENVI R1=0
        IFEX $%OLDMODE%=2,TEAM ENVI VREM=%VREM2%|ENVI R2=1!ENVI R2=0
        IFEX $%OLDMODE%=3,TEAM ENVI VREM=%VREM3%|ENVI R3=1!ENVI R3=0
        IFEX $%OLDMODE%=4,TEAM ENVI VREM=%VREM4%|ENVI R4=1!ENVI R4=0

        `Wim驱动版本选择参数设定
        IFEX $%OldNewWim%=1,TEAM ENVI RM_NEW=1|ENVI RM_OLD=0!TEAM ENVI RM_NEW=0|ENVI RM_OLD=1
        IFEX $%ISNT6%=0,TEAM CALC #RM_NEW=%RM_NEW%-2|CALC #RM_OLD=%RM_OLD%-2
        IFEX $%OLDMODE%<0,!TEAM CALC #RM_NEW=%RM_NEW%-2|CALC #RM_OLD=%RM_OLD%-2
        
        `文件不存在按钮变灰
        IFEX $%ExistWIMDRV%<0,TEAM ENVIGDelay $CM_NET=-2|ENVIG $CM_SND=-2|ENVIG $CM_DSP=-2|
            \ ENVIG $CM_PRT=-2|ENVIG $CM_DX9=-2|ENVI RM_LAN=-1|ENVI RM_PPP=-2|ENVI RM_WAN=-2|
            \ ENVI RM_RLT=-1| ENVI RM_VBE=-2|ENVI CM_PRT=-2|ENVI CM_DX9=-2
        IFEX $%ExistWIM1%<0,ENVI R1=-2
        IFEX $%ExistWIM2%<0,ENVI R2=-2
        IFEX $%ExistWIM3%<0,ENVI R3=-2
        IFEX $%ExistWIM4%<0,ENVI R4=-2
        ENVI CM2=%ExistWIMUOP%
        IFEX $%IniReadOnly%>0,ENVI CM3=-2!ENVI CM3=0

        `已驱动过一次则三卡按钮变灰
        IFEX %WinDir%\LD_NET_WAN.OK,ENVI RM_WAN=-2
        IFEX %WinDir%\LD_NET_LAN.OK,ENVI RM_LAN=-2
        IFEX %WinDir%\LD_NET_PPP.OK,ENVI RM_PPP=-2
        IFEX $%RM_WAN%=-2,IFEX $%RM_LAN%=-2,IFEX $%RM_PPP%=-2,ENVIGDelay $CM_NET=-2
        IFEX %WinDir%\LD_SND.OK,ENVI CM_SND=-2
        IFEX %WinDir%\LD_DSP.OK,TEAM ENVI CM_DSP=-2|ENVI RM_RLT=-1|ENVI RM_VBE=-2
        IFEX %WinDir%\LD_PRT.OK,ENVI CM_PRT=-2
        IFEX %WinDir%\LD_DX9.OK,ENVI CM_DX9=-2
        IFEX $%ISNT6%=1,ENVI RM_VBE=-2

        GROU Group0,L12T2W420H215,模式选择
        LABE ,L45T18W80H16,装载模式
        LABE ,L150T18W80H16,推荐内存
        LABE ,L300T18W80H16,驱动支撑

        //LABE ,L32T30W390H17,-----------------------------------------------------------------
        LABE+ ,L32T36W390H1,  //LABE+ 划线
        RADI RadioButton0,L32T40W200H20,%V0%,TEAM ENVI @Timer1=0|ENVI @lblVREM=%VREM0%|
            \ ENVI @Check_NET.Check=0|ENVI @Check_DSP.Check=0|ENVI @Check_SND.Check=0|
            \ ENVI @Check_PRT.Check=0,%R0%
        CHEK Check_NET,L240T40W80H20,驱动网卡→,ENVI @Timer1=0,%CM_NET%        
        RADI RadioNetLAN,L330T40W40H16,有线,ENVI @Timer1=0,%RM_LAN%,1
        RADI RadioPPPOE,L377T40W42H16,宽带,ENVI @Timer1=0,%RM_PPP%,1
        RADI RadioNetWAN,L330T55W80H16,无线,ENVI @Timer1=0,%RM_WAN%,1

        RADI RadioButton1,L32T70W200H20,%V1%,TEAM ENVI @Timer1=0|ENVI @lblVREM=%VREM1%|
            \ ENVI @Check_NET.Check=0|ENVI @Check_DSP.Check=0|ENVI @Check_SND.Check=0|
            \ ENVI @Check_PRT.Check=0,%R1%
        CHEK Check_DSP,L240T70W80H20,驱动显卡→,TEAM ENVI @Timer1=0,%CM_DSP%        
        RADI RadioDSPRLT,L330T70W80H16,真实驱动,ENVI @Timer1=0,%RM_RLT%,2
        RADI RadioDSPVBE,L330T85W80H16,万能驱动,ENVI @Timer1=0,%RM_VBE%,2

        RADI RadioButton2,L32T100W200H20,%V2%,TEAM ENVI @Timer1=0|ENVI @lblVREM=%VREM2%|
            \ ENVI @Check_NET.Check=1|ENVI @Check_DSP.Check=0|ENVI @Check_SND.Check=0|
            \ ENVI @Check_PRT.Check=0,%R2%
        CHEK Check_SND,L240T100W80H20,驱动声卡,ENVI @Timer1=0,%CM_SND%        

        RADI RadioButton3,L32T130W200H20,%V3%,TEAM ENVI @Timer1=0|ENVI @lblVREM=%VREM3%|
            \ ENVI @Check_NET.Check=0|ENVI @Check_DSP.Check=1|ENVI @Check_SND.Check=1|
            \ ENVI @Check_PRT.Check=0,%R3%
        CHEK Check_PRT,L240T130W80H20,驱动打印机,ENVI @Timer1=0,%CM_PRT%        
        ENVI DXV=DX9支持
        FIND $%BootOS%=W7,ENVI DXV=DX11支持
        FIND $%BootOS%=W8,ENVI DXV=DX11.1支持
        RADI RadioButton4,L32T160W200H20,%V4%,TEAM ENVI @Timer1=0|ENVI @lblVREM=%VREM4%|
            \ ENVI @Check_NET.Check=1|ENVI @Check_DSP.Check=1|ENVI @Check_SND.Check=1|
            \ ENVI @Check_PRT.Check=1,%R4%
        CHEK Check_DX9,L240T160W80H20,%DXV%,,%CM_DX9%        

        GROU Group3,L325T110W100H70,选择Wim驱动
        RADI RadioNewWim,L330T130W90H16,W7/8驱动,TEAM ENVI @Timer1=0|
            \ ENVI @lblVREM=%VREMNEWWIM%,%RM_NEW%,3
        RADI RadioOldWim,L330T160W90H16,XP03驱动,TEAM ENVI @Timer1=0|
            \ ENVI @lblVREM=%VREMOLDWIM%,%RM_OLD%,3
        
        //LABE ,L32T180W390H17,-----------------------------------------------------------------
        LABE+ ,L32T187W390H1,   //LABE+ 划线
        LABE lblVREM,L32T195W385H17,%VREM%
        
        GROU Group2,L12T210W420H110
        LABE ,L32T232W190H20,设置临时文件目录TEMP所在盘为
        FDRV AllDrive=
        FDRV CurTmpDrv=%TEMP%
        LIST ListDrv,L212T230W100H120,%AllDrive%,ENVI @Timer1=0,%CurTmpDrv%
        ITEM Button3,L317T230W30H22,...,TEAM ENVI sMSG=请选择临时文件存放的盘:|CALL SelectDrv
        CHEK Check2,L32T260W330H20,装载用户自制工具程序..【由\H3PE下的 UOP.WIM 定义】,
            \ ENVI @Timer1=0,%CM2%
        CHEK Check3,L32T290W330H20,重启后按以上方式操作..【不选则清除上次保存的配置】,
            \ ENVI @Timer1=0,%CM3%
        LABE ,L20T330W400H35,提示1.选择后面的模式自动包括前面的程序,退出则由程序根据以
            \上推荐内存容量自动选择装载模式。
        LABE ,L20T360W400H35,  2.保存配置后,下次启动将取消按Ctrl键呼出本选单功能,进
            \PE系统后重新装载本选单,通过清除配置可恢复Ctrl键功能。
        
        TEAM ENVI V0=|ENVI V1=|ENVI V2=|ENVI V3=|ENVI V4=
        TEAM ENVI R0=|ENVI R1=|ENVI R2=|ENVI R3=|ENVI R4=|ENVI R4=|ENVI CM2=|ENVI CM3=
        TEAM ENVI VREM0=|ENVI VREM1=|ENVI VREM2=|ENVI VREM3=|ENVI VREM4=|ENVI VREM=
        TEAM ENVI AllDrive=|ENVI CurTmpDrv=
        ITEM Button1,L320T395W88H24,确定,CALL CheckMode
        TIME Timer1,1000,CALL CancelButt
        THREAD* ENVI  //一次同步,系统不忙
_END

_SUB CheckMode        `上述“确定”按钮
        ENVI SELECTMODE=手动选择
        IFEX $%RadioButton0.Check%=1,ENVIGDelay $LOADMODE=0
        IFEX $%RadioButton1.Check%=1,ENVIGDelay $LOADMODE=1
        IFEX $%RadioButton2.Check%=1,ENVIGDelay $LOADMODE=2
        IFEX $%RadioButton3.Check%=1,ENVIGDelay $LOADMODE=3
        IFEX $%RadioButton4.Check%=1,ENVIGDelay $LOADMODE=4
        ENVI LOADUOP=%Check2.Check%
        ENVI TMPDRV=%ListDrv%
        ENVIGDelay $CM_SND=%Check_SND.Check%
        ENVIGDelay $CM_PRT=%Check_PRT.Check%
        ENVIGDelay $CM_DX9=%Check_DX9.Check%

        IFEX $%RadioNetLAN.Check%=1,ENVIGDelay $CM_NET=1
        IFEX $%RadioPPPOE.Check%=1,ENVIGDelay $CM_NET=2
        IFEX $%RadioNetWAN.Check%=1,ENVIGDelay $CM_NET=3
        IFEX $%RadioDSPRLT.Check%=1,ENVIGDelay $CM_DSP=1
        IFEX $%RadioDSPVBE.Check%=1,ENVIGDelay $CM_DSP=2
        IFEX $%Check_NET.Check%=0,ENVIGDelay $CM_NET=0
        IFEX $%Check_DSP.Check%=0,ENVIGDelay $CM_DSP=0

        IFEX $%RadioNewWim.Enable%>0,IFEX $%RadioNewWim.Check%=1,IFEX $%OldNewWim%=0,
            \ ENVI CurNewWim=1
        IFEX $%RadioOldWim.Enable%>0,IFEX $%RadioOldWim.Check%=1,IFEX $%OldNewWim%=1,
            \ ENVI CurNewWim=0

        `如果复选框为灰色则置贮存Check状态值的变量为0
        IFEX $%Check_NET.Enable%=0,ENVIGDelay $CM_NET=0
        IFEX $%Check_SND.Enable%=0,ENVIGDelay $CM_SND=0
        IFEX $%Check_DSP.Enable%=0,ENVIGDelay $CM_DSP=0
        IFEX $%Check_PRT.Enable%=0,ENVIGDelay $CM_PRT=0
        IFEX $%Check_DX9.Enable%=0,ENVIGDelay $CM_DX9=0

        `保存配置
        IFEX $%Check3.Check%=1,
        {
            ENVI^  EnviMode=1 //必须的!!!
            @ SET-def KK=/
            FIND $%CFG%=,!!  EXIT -
            PUTF -dd -len=0 %CFG%,0,zero  //清0长度
            WRIT %CFG%,$+0,_SUB ENVIGDelay
            WRIT %CFG%,$+0,    @ ENVI^  EnviMode=1 //必须的!!!
            WRIT %CFG%,$+0,    @ LPOS &&p==,,%%*
            WRIT %CFG%,$+0,    @ IFEX $%%&&p%%<1, EXIT
            WRIT %CFG%,$+0,    @ CALC &&q=%%&&p%% - 2
            WRIT %CFG%,$+0,    @ LSTR &&TP=1,%%*
            WRIT %CFG%,$+0,    @ MSTR &&nm=2,%%&&q%%,%%*
            WRIT %CFG%,$+0,    @ CALC &&r=%%&&p%% + 1
            WRIT %CFG%,$+0,    @ MSTR &&v=%%&&r%%,-1,%%*
            WRIT %CFG%,$+0,    ENVI %%&&nm%%=%%&&v%%
            WRIT %CFG%,$+0,    @ FIND $%%&&TP%%=#, REGI $HKEY_CURRENT_USER\Environment\
   \%%&&nm%%=%%&v%%! REGI $HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\
   \Session Manager\Environment\%%&&nm%%=%%&v%%
            WRIT %CFG%,$+0,_END
            WRIT %CFG%,$+0,ENVIGDelay $LOADMODE=%LOADMODE%
            WRIT %CFG%,$+0,ENVIGDelay $LOADUOP=%LOADUOP%
            WRIT %CFG%,$+0,ENVIGDelay $TMPDRV=%TMPDRV%
            WRIT %CFG%,$+0,ENVIGDelay $CM_NET=%CM_NET%
            WRIT %CFG%,$+0,ENVIGDelay $CM_SND=%CM_SND%
            WRIT %CFG%,$+0,ENVIGDelay $CM_DSP=%CM_DSP%
            WRIT %CFG%,$+0,ENVIGDelay $CM_PRT=%CM_PRT%
            WRIT %CFG%,$+0,ENVIGDelay $CM_DX9=%CM_DX9%
            WRIT %CFG%,$+0,THREAD* ENVI  %&KK%//一次同步,系统不忙
        }!
        {
            IFEX %CFG%, FILE %CFG%
        }
        THREAD* ENVI  //一次同步,系统不忙
        KILL \
_END
CALL ManulSetLoadMode

//ENVIGDelay  非阻塞设置全局变量
//    最后    【THREAD* ENVI】 或 【ENVI】一次系统同步,系统不忙
//ENVIGDelay  <$|#>名字=值
_SUB ENVIGDelay
    @ LPOS &&p==,,%*
    @ IFEX $%&&p%<1, EXIT
    @ CALC &&q=%&&p% - 2
    @ LSTR &&TP=1,%*
    @ MSTR &&nm=2,%&&q%,%*
    @ CALC &&r=%&&p% + 1
    @ MSTR &&v=%&&r%,-1,%*
    ENVI %&&nm%=%&&v%
    @ FIND $%&&TP%=#, REGI $HKEY_CURRENT_USER\Environment\%&&nm%=%&v%! REGI $HKEY_LOC
\AL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\%&&nm%=%&v%
_END  

Snap1.gif (14.8 KB, 下载次数: 207)

Snap1.gif

多线程优化的ManulSetLoadMode.wcs.zip

3.62 KB, 下载次数: 4

优化后的代码

回复

使用道具 举报

6959#
 楼主| 发表于 2013-12-15 14:27:45 | 只看该作者

窗口中划线 托盘重启

本帖最后由 mdyblog 于 2013-12-15 14:29 编辑

窗口中划线  :
LABE+ ,L32T187W390H1,   //LABE+ 划横线

LABE+ ,L26T42W1H166,,   //LABE+ 划竖线


Explorer 重启后,窗口托盘 如何重启?

_SUB WIN1,W289H244, 测试
    ENVI @this.MSG=_%&WM_TaskbarRestart%: TEAM TIPS* *| TIPS* 测试,,,,SHELL32.DLL#9
    TIPS* 测试,,,,SHELL32.DLL#9
_END

回复

使用道具 举报

6960#
 楼主| 发表于 2013-12-16 01:01:50 | 只看该作者
本帖最后由 mdyblog 于 2013-12-16 01:15 编辑
hhh333 发表于 2013-12-14 23:09
刚才试了最新14号的版本,开启窗口慢好象改善了一点点,但开启后点确定无反应,但移动一下窗口或者在桌面 ...


ENVI $后台 的功能 内置了 201201.80.14.04   201201.78.21.03
EVNI   [$][#][-]【*】[名称]=值

前导"$"表示设置系统级环境变量,"#"表示设置用户级环境变量,可同时用;均广播所有程序,5秒等待超
   时,且系统忙。*-配合$#, -为THREAD后台广播*只设置系统,不广播,后面可以EIVI来一次广播

ENVI  $*A1=123
ENVI  $*A2=123
ENVI  $*A3=123
ENVI  $*A4=123
ENVI  $*A5=123
THREAD  ENVI   //最后一次系统同步。

内部优化了,自动合并临近的 【ENVI $-】的系统同步操作,其实也可以(用 ENVI $-, 最后不用 THREAD ENVI ):。
ENVI  $-A1=123
ENVI  $-A2=123
ENVI  $-A3=123
ENVI  $-A4=123
ENVI  $-A5=123
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
ENVI^  EnviMode=1 //防止灵异事件!!
_SUB CancelButt        `窗体共用的计时退出代码
        CALC #Result=%TT%-1
        ENVI TT=%Result%
        ENVI @Button1=确定(%TT%秒)
        IFEX $%TT%<1,TEAM ENVI @Timer1=0|KILL \
_END

_SUB ManulSetLoadMode,W450H450,请选定维护模式(外置位置:%IniDiskType% %IniDir%),,SHELL32.DLL#21
        ENVI TT=30        `TT为窗口停留时间
        ENVI V0=0--纯内核          128MB
        ENVI V1=1--基本维护        256MB
        ENVI V2=2--网络维护        512MB
        ENVI V3=3--影音播放        768MB
        ENVI V4=4--办公系统        1024MB
        ENVI VREM0=模式0:进行基本的文件操作。
        ENVI VREM1=模式1:系统分区、安装、克隆、破密、数据救援。
        ENVI VREM2=模式2:局域网维护、IE、迅雷、QQ,请驱动网卡!
        ENVI VREM3=模式3:影音播放、图形处理,推荐驱动显、声、网卡。
        ENVI VREM4=模式4:WPS2009、附加输入法,推荐启用三卡和打印机驱动。
        ENVI VREMNEWWIM=W7/8驱动:支持多媒体,但要占与未压缩前等量内存。
        ENVI VREMOLDWIM=XP03驱动:播放器可能异常,但总不占内存。

        TEAM ENVI $-CM_NET=0|ENVI RM_LAN=1|ENVI RM_PPP=0|ENVI RM_WAN=0|
            \ ENVI RM_RLT=1|ENVI RM_VBE=0|ENVI CM_PRT=0|ENVI CM_DX9=0

        `按记忆值设置选定的单选按钮        
        IFEX $%OLDMODE%<1,TEAM ENVI VREM=%VREM0%|ENVI R0=1!ENVI R0=0
        IFEX $%OLDMODE%=1,TEAM ENVI VREM=%VREM1%|ENVI R1=1!ENVI R1=0
        IFEX $%OLDMODE%=2,TEAM ENVI VREM=%VREM2%|ENVI R2=1!ENVI R2=0
        IFEX $%OLDMODE%=3,TEAM ENVI VREM=%VREM3%|ENVI R3=1!ENVI R3=0
        IFEX $%OLDMODE%=4,TEAM ENVI VREM=%VREM4%|ENVI R4=1!ENVI R4=0

        `Wim驱动版本选择参数设定
        IFEX $%OldNewWim%=1,TEAM ENVI RM_NEW=1|ENVI RM_OLD=0!TEAM ENVI RM_NEW=0|ENVI RM_OLD=1
        IFEX $%ISNT6%=0,TEAM CALC #RM_NEW=%RM_NEW%-2|CALC #RM_OLD=%RM_OLD%-2
        IFEX $%OLDMODE%<0,!TEAM CALC #RM_NEW=%RM_NEW%-2|CALC #RM_OLD=%RM_OLD%-2
        
        `文件不存在按钮变灰
        IFEX $%ExistWIMDRV%<0,TEAM ENVI $-CM_NET=-2|ENVIG $CM_SND=-2|ENVIG $CM_DSP=-2|
            \ ENVIG $CM_PRT=-2|ENVIG $CM_DX9=-2|ENVI RM_LAN=-1|ENVI RM_PPP=-2|ENVI RM_WAN=-2|
            \ ENVI RM_RLT=-1| ENVI RM_VBE=-2|ENVI CM_PRT=-2|ENVI CM_DX9=-2
        IFEX $%ExistWIM1%<0,ENVI R1=-2
        IFEX $%ExistWIM2%<0,ENVI R2=-2
        IFEX $%ExistWIM3%<0,ENVI R3=-2
        IFEX $%ExistWIM4%<0,ENVI R4=-2
        ENVI CM2=%ExistWIMUOP%
        IFEX $%IniReadOnly%>0,ENVI CM3=-2!ENVI CM3=0

        `已驱动过一次则三卡按钮变灰
        IFEX %WinDir%\LD_NET_WAN.OK,ENVI RM_WAN=-2
        IFEX %WinDir%\LD_NET_LAN.OK,ENVI RM_LAN=-2
        IFEX %WinDir%\LD_NET_PPP.OK,ENVI RM_PPP=-2
        IFEX $%RM_WAN%=-2,IFEX $%RM_LAN%=-2,IFEX $%RM_PPP%=-2,ENVI $-CM_NET=-2
        IFEX %WinDir%\LD_SND.OK,ENVI CM_SND=-2
        IFEX %WinDir%\LD_DSP.OK,TEAM ENVI CM_DSP=-2|ENVI RM_RLT=-1|ENVI RM_VBE=-2
        IFEX %WinDir%\LD_PRT.OK,ENVI CM_PRT=-2
        IFEX %WinDir%\LD_DX9.OK,ENVI CM_DX9=-2
        IFEX $%ISNT6%=1,ENVI RM_VBE=-2

        GROU Group0,L12T2W420H215,模式选择
        LABE ,L45T18W80H16,装载模式
        LABE ,L150T18W80H16,推荐内存
        LABE ,L300T18W80H16,驱动支撑

        //LABE ,L32T30W390H17,-----------------------------------------------------------------
        LABE+ ,L32T36W390H1,  //LABE+ 划线
        RADI RadioButton0,L32T40W200H20,%V0%,TEAM ENVI @Timer1=0|ENVI @lblVREM=%VREM0%|
            \ ENVI @Check_NET.Check=0|ENVI @Check_DSP.Check=0|ENVI @Check_SND.Check=0|
            \ ENVI @Check_PRT.Check=0,%R0%
        CHEK Check_NET,L240T40W80H20,驱动网卡→,ENVI @Timer1=0,%CM_NET%        
        RADI RadioNetLAN,L330T40W40H16,有线,ENVI @Timer1=0,%RM_LAN%,1
        RADI RadioPPPOE,L377T40W42H16,宽带,ENVI @Timer1=0,%RM_PPP%,1
        RADI RadioNetWAN,L330T55W80H16,无线,ENVI @Timer1=0,%RM_WAN%,1

        RADI RadioButton1,L32T70W200H20,%V1%,TEAM ENVI @Timer1=0|ENVI @lblVREM=%VREM1%|
            \ ENVI @Check_NET.Check=0|ENVI @Check_DSP.Check=0|ENVI @Check_SND.Check=0|
            \ ENVI @Check_PRT.Check=0,%R1%
        CHEK Check_DSP,L240T70W80H20,驱动显卡→,TEAM ENVI @Timer1=0,%CM_DSP%        
        RADI RadioDSPRLT,L330T70W80H16,真实驱动,ENVI @Timer1=0,%RM_RLT%,2
        RADI RadioDSPVBE,L330T85W80H16,万能驱动,ENVI @Timer1=0,%RM_VBE%,2

        RADI RadioButton2,L32T100W200H20,%V2%,TEAM ENVI @Timer1=0|ENVI @lblVREM=%VREM2%|
            \ ENVI @Check_NET.Check=1|ENVI @Check_DSP.Check=0|ENVI @Check_SND.Check=0|
            \ ENVI @Check_PRT.Check=0,%R2%
        CHEK Check_SND,L240T100W80H20,驱动声卡,ENVI @Timer1=0,%CM_SND%        

        RADI RadioButton3,L32T130W200H20,%V3%,TEAM ENVI @Timer1=0|ENVI @lblVREM=%VREM3%|
            \ ENVI @Check_NET.Check=0|ENVI @Check_DSP.Check=1|ENVI @Check_SND.Check=1|
            \ ENVI @Check_PRT.Check=0,%R3%
        CHEK Check_PRT,L240T130W80H20,驱动打印机,ENVI @Timer1=0,%CM_PRT%        
        ENVI DXV=DX9支持
        FIND $%BootOS%=W7,ENVI DXV=DX11支持
        FIND $%BootOS%=W8,ENVI DXV=DX11.1支持
        RADI RadioButton4,L32T160W200H20,%V4%,TEAM ENVI @Timer1=0|ENVI @lblVREM=%VREM4%|
            \ ENVI @Check_NET.Check=1|ENVI @Check_DSP.Check=1|ENVI @Check_SND.Check=1|
            \ ENVI @Check_PRT.Check=1,%R4%
        CHEK Check_DX9,L240T160W80H20,%DXV%,,%CM_DX9%        

        GROU Group3,L325T110W100H70,选择Wim驱动
        RADI RadioNewWim,L330T130W90H16,W7/8驱动,TEAM ENVI @Timer1=0|
            \ ENVI @lblVREM=%VREMNEWWIM%,%RM_NEW%,3
        RADI RadioOldWim,L330T160W90H16,XP03驱动,TEAM ENVI @Timer1=0|
            \ ENVI @lblVREM=%VREMOLDWIM%,%RM_OLD%,3
        
        //LABE ,L32T180W390H17,-----------------------------------------------------------------
        LABE+ ,L32T187W390H1,   //LABE+ 划线
        LABE lblVREM,L32T195W385H17,%VREM%
        
        GROU Group2,L12T210W420H110
        LABE ,L32T232W190H20,设置临时文件目录TEMP所在盘为
        FDRV AllDrive=
        FDRV CurTmpDrv=%TEMP%
        LIST ListDrv,L212T230W100H120,%AllDrive%,ENVI @Timer1=0,%CurTmpDrv%
        ITEM Button3,L317T230W30H22,...,TEAM ENVI sMSG=请选择临时文件存放的盘:|CALL SelectDrv
        CHEK Check2,L32T260W330H20,装载用户自制工具程序..【由\H3PE下的 UOP.WIM 定义】,
            \ ENVI @Timer1=0,%CM2%
        CHEK Check3,L32T290W330H20,重启后按以上方式操作..【不选则清除上次保存的配置】,
            \ ENVI @Timer1=0,%CM3%
        LABE ,L20T330W400H35,提示1.选择后面的模式自动包括前面的程序,退出则由程序根据以
            \上推荐内存容量自动选择装载模式。
        LABE ,L20T360W400H35,  2.保存配置后,下次启动将取消按Ctrl键呼出本选单功能,进
            \PE系统后重新装载本选单,通过清除配置可恢复Ctrl键功能。
        
        TEAM ENVI V0=|ENVI V1=|ENVI V2=|ENVI V3=|ENVI V4=
        TEAM ENVI R0=|ENVI R1=|ENVI R2=|ENVI R3=|ENVI R4=|ENVI R4=|ENVI CM2=|ENVI CM3=
        TEAM ENVI VREM0=|ENVI VREM1=|ENVI VREM2=|ENVI VREM3=|ENVI VREM4=|ENVI VREM=
        TEAM ENVI AllDrive=|ENVI CurTmpDrv=
        ITEM Button1,L320T395W88H24,确定,CALL CheckMode
        TIME Timer1,1000,CALL CancelButt
_END

_SUB CheckMode        `上述“确定”按钮
        ENVI SELECTMODE=手动选择
        IFEX $%RadioButton0.Check%=1,ENVI $-LOADMODE=0
        IFEX $%RadioButton1.Check%=1,ENVI $-LOADMODE=1
        IFEX $%RadioButton2.Check%=1,ENVI $-LOADMODE=2
        IFEX $%RadioButton3.Check%=1,ENVI $-LOADMODE=3
        IFEX $%RadioButton4.Check%=1,ENVI $-LOADMODE=4
        ENVI LOADUOP=%Check2.Check%
        ENVI TMPDRV=%ListDrv%
        ENVI $-CM_SND=%Check_SND.Check%
        ENVI $-CM_PRT=%Check_PRT.Check%
        ENVI $-CM_DX9=%Check_DX9.Check%

        IFEX $%RadioNetLAN.Check%=1,ENVI $-CM_NET=1
        IFEX $%RadioPPPOE.Check%=1,ENVI $-CM_NET=2
        IFEX $%RadioNetWAN.Check%=1,ENVI $-CM_NET=3
        IFEX $%RadioDSPRLT.Check%=1,ENVI $-CM_DSP=1
        IFEX $%RadioDSPVBE.Check%=1,ENVI $-CM_DSP=2
        IFEX $%Check_NET.Check%=0,ENVI $-CM_NET=0
        IFEX $%Check_DSP.Check%=0,ENVI $-CM_DSP=0

        IFEX $%RadioNewWim.Enable%>0,IFEX $%RadioNewWim.Check%=1,IFEX $%OldNewWim%=0,
            \ ENVI CurNewWim=1
        IFEX $%RadioOldWim.Enable%>0,IFEX $%RadioOldWim.Check%=1,IFEX $%OldNewWim%=1,
            \ ENVI CurNewWim=0

        `如果复选框为灰色则置贮存Check状态值的变量为0
        IFEX $%Check_NET.Enable%=0,ENVI $-CM_NET=0
        IFEX $%Check_SND.Enable%=0,ENVI $-CM_SND=0
        IFEX $%Check_DSP.Enable%=0,ENVI $-CM_DSP=0
        IFEX $%Check_PRT.Enable%=0,ENVI $-CM_PRT=0
        IFEX $%Check_DX9.Enable%=0,ENVI $-CM_DX9=0

        `保存配置
        IFEX $%Check3.Check%=1,
        {
            ENVI^  EnviMode=1 //必须的!!!
            FIND $%CFG%=,!!  EXIT -
            PUTF -dd -len=0 %CFG%,0,zero  //清0长度
            WRIT %CFG%,$+0,ENVI $-LOADMODE=%LOADMODE%
            WRIT %CFG%,$+0,ENVI $-LOADUOP=%LOADUOP%
            WRIT %CFG%,$+0,ENVI $-TMPDRV=%TMPDRV%
            WRIT %CFG%,$+0,ENVI $-CM_NET=%CM_NET%
            WRIT %CFG%,$+0,ENVI $-CM_SND=%CM_SND%
            WRIT %CFG%,$+0,ENVI $-CM_DSP=%CM_DSP%
            WRIT %CFG%,$+0,ENVI $-CM_PRT=%CM_PRT%
            WRIT %CFG%,$+0,ENVI $-CM_DX9=%CM_DX9%
        }!
        {
            IFEX %CFG%, FILE %CFG%
        }
        KILL \
_END
CALL ManulSetLoadMode  

多线程优化的ManulSetLoadMode.wcs.zip

3.16 KB, 下载次数: 6

多线程优化代码

点评

我现测试一下,但用快捷方式执行与右键执行不知有什么不同?  详情 回复 发表于 2013-12-16 08:43
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2026-1-23 18:28

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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