|
回复 #52 lmle 的帖子
>2012abc19701:
> 你好,今天测试u8,把含有命令的文本文件拖放到PECMD上,一闪后就没有了下文,请楼主检查。u7正常。
A:
┣━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ │格式│EXEC[*[1|N] NAME=] [--wait] [--hide] [--limit] [/REALTIME] [/HIGH] [/ABOVENORMAL] ┃
┃ │ │ [/NORMAL] [/BELOWNORMAL] [/IDLE] [--] [=][!][@][$][&]<EXE 路径>[参数] ┃
┃ ├──┼─────────────────────────────────┨
┃ │功能│执行 EXE 、BAT、CMD 程序。 ┃
┃ ├──┼──────────────────────────────────────┨
┃ │参数│指定程序路径和参数。前导参数如下(可同时使用,不分先后顺序): ┃
┃ │ │※--limit 表示安全方式执行。此时没有管理员权限。--job为作业方式。 /REALTIME 实时优先级, ┃
┃ │ │ /HIGH 为HIGH优先级, /ABOVENORMAL 为ABOVENORMAL优先级, /NORMAL 为NORMAL优先级┃
┃ │ │ /BELOWNORMAL 为BELOWNORMAL优先级, /IDLE 为最低优先级 ┃
┃ │ │※-- 表示-开关/开关结束。只在避免混淆时才必须。 ┃
┃ │ │※--wait 或前导"="表示等待执行完成。 ┃
┃ │ │※--hide 或前导"!"或"*"表示以隐藏方式执行。 ┃
┃ │ │※前导"@"表示在后台桌面(WinLogon)执行,彻底隐藏,无法与用户交互,可用于注册,如: ┃
┃EXEC│ │ "EXEC @PECMD.EXE CALL $SHELL32.DLL,DllInstall,#1,U"。 ┃
┃ │ │※前导"$"表示修改进程中的关机代码(挂接"ExitWindowsEx"函数)。建议执行"EXEC $EXPLORER.EXE"修改┃
┃ │ │ SHELL的关机函数,这样执行"开始->关闭系统"的时候就会运行"PECMD.EXE SHUT"命令来关机。 ┃
┃ │ │※前导"&"表示写入到注册表自动运行(建议用RUNS命令),由Shell登录后运行。如果使用前导"=",将在 ┃
┃ │ │ "HKLM\Software\Microsoft\Windows\CurrentVersion\Run"的键下,否则在 ┃
┃ │ │※EXEC*[1|N] NAME= 表示将程序的标准输出存入指定变量NAME中。强制为等待方式。1为只取一行;N为 ┃
┃ │ │ 直接去掉换行,合为一行;否则保持原样。太多的数据须用局部变量存(如&ABC)。 ┃
┃ ├──┼──────────────────────────────────────────────┨
┃ │示例│EXEC =!CMD.EXE /C "DEL /Q /F %TEMP%" ┃
┃ │ │EXEC* DIRT=!CMD.EXE /C DIR /S T:\xxxxx 2>&1 ┃
┃ ├──┼──────────────────────────────────────────────┨
┃ │备注│SHELL 也是通过此命令来载入的。 ┃
┃ │ │等待模式%ERRORLEVEL%为程序退出码 ┃
┃ │ │可以如批处理文件,不用EXEC, 直接运行,此时为等待模式。如 NOTEPAD ┃
┃ │ │没有命令时后缀为WC?、IN?、TX?,且文件存在,按LOAD;否则按EXEC。 ┃
┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
U8 开始 EXEC LOAD CALL 都不是必须的。可以直接调用。内部自动判断。
无LOAD/EXEC, 关于 LOAD 和 EXEC 的区分。后缀为WC?、IN?、TX?,且文件存在,按LOAD,用LOAD 处理。 否则按EXEC, 当作系统可执行文件,用EXEC =处理 ,模拟BAT/BASH的方式。
这样减少编码量。
关于拖放。 默认是 PECMD.EXE 被拖的文件名
按上面的方式处理。 你当时拖的文件名,后缀不是这个吧。
U9 针对拖放等(命令行)做了特别处理, 总是按 LOAD 处理, 全路径可以有空格。
可以注册后缀类型。如后缀为ABC,双击按 LOAD处理 (文件全路径可以有空格)
可以导入下面的注册表文件
REGEDIT4
[HKEY_CLASSES_ROOT\.abc]
@="wcs_abc_file"
[HKEY_CLASSES_ROOT\wcs_abc_file]
@="WCS_ABC 脚本文件"
#[HKEY_CLASSES_ROOT\wcs_abc_file\DefaultIcon]
#@="C:\\WINDOWS\\SYSTEM32\\PECMD.EXE,0"
[HKEY_CLASSES_ROOT\wcs_abc_file\shell\open]
@="运行"
[HKEY_CLASSES_ROOT\wcs_abc_file\shell\open\command]
@="PECMD.EXE LOAD \"%L\""
[HKEY_CLASSES_ROOT\wcs_abc_file\shell\Edit]
@="编辑"
[HKEY_CLASSES_ROOT\wcs_abc_file\shell\Edit\command]
#@="notepad \"%L\""
@="C:\\Program Files\\ULTRAEDT\\Uedit32.exe \"%L\""
[ 本帖最后由 2012abc19701 于 2012-2-4 12:58 编辑 ] |
|