无忧启动论坛

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

有三个问题望老九解决

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-21 12:14:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、KILL EXPLORER.EXE后,自定义系统级变量丢失的问题(这个命令多数情况下是来刷新消息区的,也可以直接提供更新消息区的功能)
2、提供检测键盘三个状态灯的命令或系统级环境变量。系统启动时,多数情况下用检测按键来作选择,等的时间长了影响不按键时的启动速度,留的时间短了很快又过去了不方便选择。如果用状态灯来作检测的话就方便了,只要开机键盘自检后就可提前改变灯的状态,选择起来得心应手。
3、这个问题较大,主要就是“!”产生歧义的问题。条件中用它来作ELSE用,EXE用来作隐藏执行用,FORX中用来作逆序用……太多了很容易出问题。我觉得至少应该先取消ELSE的功能,用另一个符号或关键字代替。

[ 本帖最后由 hhh333 于 2009-11-21 12:42 编辑 ]
2#
发表于 2009-11-21 12:36:53 | 只看该作者
1.3这两个问题我也碰过.
1\一般在刷新批处理后加个pecmd envi(不过容易出现手动KILL SHELL的情况),或直接在内核中集成该变量.
2\在IFEX中,!后用CALL

LZ整理的好啊.

我希望能在PECMD wincmd中增强GUI效果
如:(PECMD Load *.ini)
1\可以定义文字的颜色,字体,还有一些控件加上超链接或类似按钮的功能。
2\能显示GIF或AVI动画
3\进度条能截取复制文件时的进度.
4\能否加入选项卡?或是在一个call @XXX   后提供退出该GUI(EXIT)的功能(不是KILL 当前进程,而是退出这个函数,继续执行下面命令)
5\可否截取外部命令的变量,如在这个ini配置文件中有一句exec C:\A.cmd
A.cmd 赋与了一个变量A,接下来pecmd 中就能识别出这个变量%A%
6\Brow   命令是否能提供类似的多扩展名支持?
7、pecmd 的定时不是很精确,MS跟CPU性能有关。
8、是否考虑集成刷新IMAG 内容的功能。类似 ENVI @IMG=C:\a.jpg

9、在用ENVI一个LIST控件时,会在原有内容中追加,是否考虑给一个参数供选择。
10、exec调用外部程序时一此已经定义的字符串容易出问题,也就像LZ所说的3,最简单的,你无法用LINK作一个GHOST自动恢复的LNK(不借助其他脚本),希望可以提供: ”用  ""号圈起来的内容如果含有命令定义的字符则忽略 ”的功能。

其实还有好多如多。
Mr.老九说怕增大PECMD的体积,不利于PE核心大小的控制,那WINCMD则不会内置于PE Kernel 了吧,我不怕它体积大?
回复

使用道具 举报

3#
发表于 2009-11-21 22:54:51 | 只看该作者
第一个问题 是第二次使用path命令的话 上次path设置的就失效了。
回复

使用道具 举报

4#
发表于 2009-11-22 10:59:18 | 只看该作者
原帖由 hhh333 于 2009-11-21 12:14 发表
1、KILL EXPLORER.EXE后,自定义系统级变量丢失的问题(这个命令多数情况下是来刷新消息区的,也可以直接提供更新消息区的功能)
2、提供检测键盘三个状态灯的命令或系统级环境变量。系统启动时,多数情况下用检测按键来作选择,等的时间长了影响不按键时的启动速度,留的时间短了很快又过去了不方便选择。如果用状态灯来作检测的话就方便了,只要开机键盘自检后就可提前改变灯的状态,选择起来得心应手。
3、这个问题较大,主要就是“!”产生歧义的问题。条件中用它来作ELSE用,EXE用来作隐藏执行用,FORX中用来作逆序用……太多了很容易出问题。我觉得至少应该先取消ELSE的功能,用另一个符号或关键字代替。


1、系统环境变量或用户环境变量已经写入注册表,如果KILL EXPLORER.EXE后丢失,可以:
在KILL EXPLORER.EXE接着执行无参数的ENVI来刷新,或者将无参数的ENVI写入启动项中。
2、建议改成带有窗口界面功能给用户选择,可以用MESS命令来实现,也可以设置成一个具有复杂功能的窗口界面给用户选择,
这方面台湾有位朋友比较有经验。如果用MESS命令来实现,可能好好理解和参照下面的示例:
MESS 请你选择[是]或[否]@提示#YN*10000$N
FIND $%YESNO%=YES,MESS 你选择了"是"@提示#OK!MESS 你选择了"否"@提示#OK

3、有人给你回答了,这个问题很早就有人提到,解决的方法是用CALL命令:
IFEX XXXX=YYYY,CALL AAAA!CALL BBBBB

总之,要灵活运用,运用得好PECMD可以解决很多复杂的问题;
如果每想到一样功能就增加一条命令的话,PECMD就会出现很多命令,不方便记忆,也不方便理解。
回复

使用道具 举报

5#
 楼主| 发表于 2009-11-22 21:40:05 | 只看该作者
原帖由 lxl1638 于 2009-11-22 10:59 发表


1、系统环境变量或用户环境变量已经写入注册表,如果KILL EXPLORER.EXE后丢失,可以:
在KILL EXPLORER.EXE接着执行无参数的ENVI来刷新,或者将无参数的ENVI写入启动项中。
2、建议改成带有窗口界面功能给 ...


老九的回答不能让我满意:

1、我在批处理中执行无参数的PECMD ENVI,后续语句中并不能马上引用丢失的变量;INI中也是这样的,因为这个进程的环境变量在程序开始时已经被初始化了。只有重新运行这个程序时,前面刷新过来的才有效。

2、无论是窗口输出选择还是按键选择都是要等待时间的。譬如有90%的情况或人是不作选择直接以默认方式进入的,有10%的情况或人是需要选择而进入的。总不能要90%的去等这10%的吧?而检测键盘灯是一个好的办法,因为机器自检键盘后,用户就可以去改变灯的状态。(实现起来并不复杂)

3、第三个虽然有变通办法,我一直也是这么用的。但为一条语句去调用子程序,有这个必要吗?

[ 本帖最后由 hhh333 于 2009-11-23 17:41 编辑 ]
回复

使用道具 举报

6#
 楼主| 发表于 2009-11-22 22:35:18 | 只看该作者
关于环境变量的问题我想再议一下:
先编两个文件,1.cmd和2.cmd内容如下:

rem ----1.CMD的内容------
SET >11.TXT
PECMD EVNI $MYTEST=123456789
SET >12.TXT
PECMD KILL EXPLORER.EXE
PECMD WAIT 3000
SET >13.TXT

rem ----2.CMD的内容------
SET >21.TXT
ECHO MYTEST=%MYTEST%>>21.TXT
PECMD ENVI
PECMD WAIT 3000
SET >22.TXT
ECHO MYTEST=%MYTEST%>>22.TXT

1、先执行1.cmd,则会产生一个系统变量MYTEST。

2、再执行2.cmd,22.TXT中并没有MYTEST

3、第2次执行2.cmd,这时候21/22.txt中均有MYTEST。

以上11/12/13.txt三个文件的内容永远是相同的。21/22.txt两个文件的内容也永远是相同的。

[ 本帖最后由 hhh333 于 2009-11-23 17:37 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-29 10:36

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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