首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

在WIN7上的一个软件功能的

2012-09-17 
在WIN7下的一个软件功能的求助最近公司接了一个在线检测的项目,客户要求:1、系统启动后自动运行软件进入测

在WIN7下的一个软件功能的求助
最近公司接了一个在线检测的项目,客户要求:
1、系统启动后自动运行软件进入测试程序(这个写注册表自启动应该就可以了);
2、windows操作系统必须被锁定在测试程序之后,说的不清楚,意思就是只看得到测试程序,其它操作都无法进行;

第二条我水平有限也不得头脑……
我自启动后将软件页面置顶,同时去掉最小化等按钮,同时隐藏windows桌面,貌似可以了,但只要通过键盘启动任务管理器那什么都是白搭了……同时很多键盘操作也足以干掉当前活动程序
禁用任务管理器?拦截键盘消息?

那有操作是否禁用任务管理器的API么?
另外我也暂时还没试过拦截键盘消息,只听说要用钩子函数,没细究过……

工期很紧,希望各位大侠给个合适的建议,我不知道的东西我可以去查资料学习,这个没有问题……就是时间紧迫

[解决办法]
这个项目肯定要被360当成木马干掉的.

第二条有个简单的办法实现就是用你的程序替代Explorer
[解决办法]
截获消息,扑捉键盘 都是不可缺少的
[解决办法]
不用Windows行不?换成linux容易一些
[解决办法]
原来写过一个与你的相似,采用的方法主要是蔽系统热键使,比如Key=115,启动退出密码等等,目前我的这个软件还保持着打开了别人关不了的状态,退出后,Windows一切正常。
[解决办法]

C/C++ code
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);}//---------------------------------------
[解决办法]
探讨

C/C++ code

HHOOK OldHook; //钩子句柄
//---------------------------------------
//这个是回调函数
long CALLBACK KeyProc(int code, WPARAM wParam, LPARAM lParam)
{
KBDLL……

热点排行