在WIN7下的一个软件功能的求助
最近公司接了一个在线检测的项目,客户要求:
1、系统启动后自动运行软件进入测试程序(这个写注册表自启动应该就可以了);
2、windows操作系统必须被锁定在测试程序之后,说的不清楚,意思就是只看得到测试程序,其它操作都无法进行;
第二条我水平有限也不得头脑……
我自启动后将软件页面置顶,同时去掉最小化等按钮,同时隐藏windows桌面,貌似可以了,但只要通过键盘启动任务管理器那什么都是白搭了……同时很多键盘操作也足以干掉当前活动程序
禁用任务管理器?拦截键盘消息?
那有操作是否禁用任务管理器的API么?
另外我也暂时还没试过拦截键盘消息,只听说要用钩子函数,没细究过……
工期很紧,希望各位大侠给个合适的建议,我不知道的东西我可以去查资料学习,这个没有问题……就是时间紧迫
[解决办法]
这个项目肯定要被360当成木马干掉的.
第二条有个简单的办法实现就是用你的程序替代Explorer
[解决办法]
截获消息,扑捉键盘 都是不可缺少的
[解决办法]
不用Windows行不?换成linux容易一些
[解决办法]
原来写过一个与你的相似,采用的方法主要是蔽系统热键使,比如Key=115,启动退出密码等等,目前我的这个软件还保持着打开了别人关不了的状态,退出后,Windows一切正常。
[解决办法]
HHOOK OldHook; //钩子句柄//---------------------------------------//这个是回调函数long CALLBACK KeyProc(int code, WPARAM wParam, LPARAM lParam){ KBDLLHOOKSTRUCT *pkbhs; if (code < 0) { return CallNextHookEx(OldHook, code, wParam, lParam); } pkbhs = (KBDLLHOOKSTRUCT*) lParam; if (pkbhs->vkCode == 91) { return 1; //封锁win键 } if (pkbhs->vkCode == VK_ESCAPE && GetAsyncKeyState(VK_CONTROL)<0) { return 1; //封锁 CTRL+ESC } if (pkbhs->vkCode == VK_TAB && pkbhs->flags&LLKHF_ALTDOWN) { return 1; //封锁 ALT+TAB } if (pkbhs->vkCode == 115 && pkbhs->flags&LLKHF_ALTDOWN) { return 1; //封锁 ALT+F4 } if (pkbhs->vkCode == VK_ESCAPE && pkbhs->flags&LLKHF_ALTDOWN) { return 1; //封锁 ALT+ESC } if (pkbhs->vkCode == VK_SPACE && GetAsyncKeyState(VK_CONTROL)<0) { return 1; //封锁 CTRL+Space } if (pkbhs->vkCode == VK_DELETE && GetAsyncKeyState(VK_CONTROL)<0 && pkbhs->flags&LLKHF_ALTDOWN) { return 1; //封锁 CTRL+Alt+Del } return CallNextHookEx(OldHook, code, wParam, lParam);}//---------------------------------------void __fastcall TForm1::btn2Click(TObject *Sender){ //销毁钩子 UnhookWindowsHookEx( OldHook );}//---------------------------------------void __fastcall TForm1::btn1Click(TObject *Sender){ //注册钩子 OldHook = SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)KeyProc, HInstance, 0);}//---------------------------------------
[解决办法]