编程资料集中营
 | 网站首页 | 文章中心 | 编程资料2 | 软件下载 | BT下载 | 八卦星闻 | 音乐在线 | 在线游戏 | 免费电影 | 给我留言 | 
Windows2000平台下混合编程屏蔽键盘事件
        
【字体:
Windows2000平台下混合编程屏蔽键盘事件 进入问吧

本站地址:http://www.bajiao123.com

作者:admin    文章来源:本站    点击数:    更新时间:2007-4-9    
myGina(自定义Gina的名称)

若GINADLL不存在,新建即可。

再重启计算机后myGina即为系统使用。

 

2)        全局HOOKDLL编写

采用BORLAND C++Bulider 6.0(以下简称BCB)编写安装全局HOOK的DLL文件。BCB是一款优秀的C/C++语言开发工具,可以快速开发高质量的Windows程序。下面介绍简要步骤:

I.          利用BCB新建向导,建立一个DLL工程。在此DLL中我们将有条件的安放两个HOOK。一个用于捕获系统功能热键并屏蔽,另一个用作客户端程序的激活热键;

 

II.         在cpp里添加如下代码

 

此段代码用于申明全局变量和导出函数。因为此DLL文件将被VB编写的客户端程序所调用,所以声明导出函数时需要将语句extern ”C” 放置在声明处。另外在BCB中默认的调用约定为__cdecl方式,而在VB中调用约定为__stdcall。

pragma argsused

//下面变量用于HOOK.cpp

static HHOOK hOldHook=0;/*记录上一个注册的键盘钩子*/

static HHOOK hOldHook2=0;/*记录上一个注册的键盘钩子*/

static HWND hProcWnd=0; /*记录客户程序的窗体*/

static HANDLE hInstance=0;/*DLL的句柄*/

//导出setHotKey

extern "C" __declspec(dllexport) char _stdcall ActivateKey(HWND hWnd,bool nCode,bool bWhich);

 

int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)

{

        //用全局变量保存这个DLL的句柄

        hInstance=hinst;

        return 1;

}

 

因为客户端程序是作为后台运行的,所以我们需要给其安放个激活热键,以便用户在任何情况下通过热键呼出。所以必须通过DLL文件安放一个全局HOOK,用作激活热键。当用户按下激活热键后,DLL会截获消息并向指定的客户端程序发送激活消息。

//客户端程序热键---------------------------------------------------------------------------

LRESULT CALLBACK HotKeyProc(int nCode,WPARAM wParam,LPARAM lParam)

{

        bool fEatKeystroke = FALSE;

        //PKBDLLHOOKSTRUCT p = NULL;

        if (nCode == HC_ACTION) {

                switch (wParam)

                {

                case WM_KEYDOWN:  case WM_SYSKEYDOWN:

                case WM_KEYUP:    case WM_SYSKEYUP:

                        PKBDLLHOOKSTRUCT p = (PKBDLLHOOKSTRUCT) lParam;

                        fEatKeystroke =

                        ((p->flags & LLKHF_ALTDOWN) != 0)&& (p->vkCode==VK_F12);//自定义激活//热键: Alt+F12

                        break;

                }

        if(fEatKeystroke)

    

上一页  [1] [2] [3] [4] [5] [6] 下一页

   

进入问吧

Windows2000平台下混合编程屏蔽键盘事件

本站地址:http://www.bajiao123.com

文章录入:admin    责任编辑:admin 
编程资料集中营