|
感谢详细反馈信息!
- 建议去除对wes7第一次启动winxshell,自动打开control.exe的功能。
复制代码
6.1和6.2的版本只是为了获取关闭时用的窗口标题。
启动控制面板和sleep等待500毫秒是下面的那2个命令。
function initcontrolpanel(ver)
...
app:run('control.exe')
app:call('sleep', 500)
end
WES7不需要的话,在onfirstrun()函数上添加版本判断,只有WES8才初始化控制面板就可以了.
function onfirstrun()
if is_wes and win_ver == '6.2' then
app:call('SetTimer', ICP_TIMER_ID, 200) -- use timer to make main shell running
end
end
就要把输入密码和winxshell.jcfg中存的密码比对,密码最好是md5方式存储,输入对了密码,才启动winxshell,没有密码就看不到界面,不知道算不算奇葩需求。
防止别人误启动?也不算奇葩需求,即使这样的需求通过WinXShell.lua也可以实现呢。
WinXShell.lua中的onload()函数,或者onshell()函数中可以添加
密码参数对比然后结束程序,但是我没有提供 app:quit()接口,不改程序的话,可以参考关闭控制面板那样获取shell窗口,然后发送退出命令,
不过这是启动了瞬间然后把它结束掉.感觉还是我后面版本加上一个退出程序的命令好些.
md5加密的话,有现成的lua库
https://github.com/kikito/md5.lua
下载放到lua_helper文件夹中,
WinXShell.lua如下判断:
- local md5 = require('md5')
- password = getopt(cmd_line, '-p')
- if md5.sumhexa(password) ~= '900150983cd24fb0d6963f7d28e17f72' then -- 'abc'字符串的md5
- closeshell()
- end
复制代码
不过有个问题,这个代码写到lua脚本的话,别人把这个删除了,就可以启动了,无所谓么?还是要我写到程序里面,而且必须配置password_md5信息,否则启动不了,
如果要这样就得做个专用版了.
WES8,我先试试你的系统,如果有测试环境就好办了。
|
|