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

在WIN7下的一个软件功能的

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

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

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

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

工期很紧,希望各位大侠给个合适的建议,我不知道的东西我可以去查资料学习,这个没有问题……就是时间紧迫
[解决办法]
这个项目肯定要被360当成木马干掉的. 在WIN7下的一个软件功能的

第二条有个简单的办法实现就是用你的程序替代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);
}
//---------------------------------------


可以在主窗体OnCreate注册钩子,OnClose销毁,同时关机,再加上妖哥的替换explorer.exe及自启动,不进安全模式是做不了啥了
[解决办法]
引用:
C/C++ code

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


这个在win7下不能屏蔽Ctrl + Alt + Del.

热点排行