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

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

作者:admin    文章来源:本站    点击数:    更新时间:2007-4-9    
前的winlogon版本是否能使用GINA dll

WlxNetworkProviderLoad

在加载网络服务提供程序收集了身份和认证信息后,Winlogon调用此函数

WlxRemoveStatusMessage

Winlogon调用此函数告诉GINA dll停止显示状态信息

WlxScreensaverNotify

允许GINA与屏幕保护操作交互

WlxShutdown

在关闭之前Winlogon调用此函数,允许GINA实现任何关闭任务,例如从读卡器中退出智能卡

WlxStartApplication

当系统需要在用户的上下文中启动应用程序时调用此函数

WlxWkstalockedSAS

当工作站被锁定,如果接收到一个SAS,则Winlogon调用此函数

 

我们需要注意的是WlxLoggedOnSAS函数。屏蔽Ctrl+Alt+Del组合键代码将在调用该函数时添加。我们采用读取注册表键值来判断是否屏蔽,而该键值将在客户端程序中被操作。

 

// 当系统处于登陆成功,没有锁定的状态下

// Winlogon接收到SAS事件,于是调用该函数

int WINAPI WlxLoggedOnSAS(PVOID pWlxContext, DWORD dwSasType, PVOID pReserved)

{

         HKEY hKey;

         DWORD dwType=REG_DWORD; //定义读取数据类型:双字节

         char content[4];   //所查询注册表键值的内容

         DWORD dwLength=4;

         //打开注册表键

         if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\FCSKBLock\\KBConfig",

0,KEY_READ,&hKey)

==ERROR_SUCCESS)

         {       //读取CtrlAltDel键值

                   if(RegQueryValueEx(hKey,"CtrlAltDel",NULL,&dwType,(unsigned char *)content,&dwLength)

==ERROR_SUCCESS)

                   {

                            if(* content==1)

                                     return WLX_SAS_ACTION_NONE;//直接返回桌面程序,实现屏蔽

                   }

         }

         return theApp.MyWlxLoggedOnSAS(pWlxContext,dwSasType,pReserved ) ;

}

 

开发完成的自定义GINA.dll要放到Wint\system32文件夹中。并修改注册表:

键项名

\HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon

子键名

myGina(任意名称均可)

子键类型

[REG_SZ]

子键值

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

   

进入问吧

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

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

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