程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> VC實現Win2000下屏蔽Ctrl+Alt+Del鍵

VC實現Win2000下屏蔽Ctrl+Alt+Del鍵

編輯:vc教程

導讀:

  大家知道,Ctrl+Alt+Del是Win2k/NT操作系統默認的系統登錄/注銷組合鍵序列,系統級別很高。在應用程序中,想要屏蔽掉該鍵序列的響應或得到這個"按下"事件,難度是相當大的。本例介紹了一種簡單易行的方法,實現在用戶登錄成功後,按下Ctrl+Alt+Del不再彈出"Windows安全"對話框。需要讀者朋友注意的是,本實例必須運行在Windows 2000環境下。

  一、 實現方法

  首先介紹一下WinLogon。Windows 2000/NT有三種系統狀態:沒有用戶登錄狀態、用戶成功登錄狀態以及工作站鎖定狀態。WinLogon是Windows 2000/NT操作系統提供交互式登錄支持的組件。WinLogon有三個組成部分:可執行文件winLogon.exe,提供圖形界面認證功能的動態庫Gina Dll,以及一些網絡服務提供動態庫Network Provider Dll。參考模型如下:
  
  參考模型

  winLogon.exe處理一些下層導出的接口函數,而認證策略是在Gina Dll中獨立設計的。在系統啟動時,Gina Dll被winLogon.exe裝載。Microsoft提供了一個默認的Gina Dll--Winntsystem32msgina.dll,提供了標准的用戶名、密碼認證模式。Gina Dll是可替換的,用戶可以設計自己的Gina Dll,以提供其他如智能卡、視網膜、指紋或其他一些認證機制。

  開發自定義的Gina Dll。必須實現並導出與winLogon.exe交互的18個標准函數接口,包括WlxNegotiate、WlxInitialize、WlxLoggedOnSAS等(其他函數接口請參考Msdn)。其中WlxNegotiate是winLogon.exe調用的第一個接口函數,進行必要的版本判斷,隨後調用的是WlxInitialize,主要完成winLogon.exe特定版本的函數分派表向Gina Dll的傳遞。筆者還要說明的是WlxLoggedOnSAS函數,這個函數主要的功能是,當winLogon在登錄成功狀態下,接收到SAS事件,於是調用這個函數進行SAS事件的識別以及進行各事件的相應處理。

  自定義Gina Dll的使用。比如開發的Gina Dll文件名為MyGina.dll。將該文件放到以下路徑:Winntsystem32。並修改注冊表,如下:

  Key Name: HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersion WinLogon
  Value Name: GinaDLL
  Value Type: [REG_SZ]
  Value: MyGina.dll

  重新啟動計算機MyGina.dll即投入使用。在用戶登錄成功狀態下,按下Ctrl+Alt+Del時系統不再彈出"Widows安全"對話框。由於並不需要改變用戶名、密碼這種標准的認證模式,所以可以仍然使用msgina.dll中導出的函數接口,而對WlxLoggedOnSAS函數的實現進行必要的改變,不管接收到什麼SAS事件,該函數直接返回WLX_SAS_ACTION_NONE而不做其他處理。

  二、編程步驟

  1、啟動Visual C++6.0,新建一個項目,選擇MFC AppWizard(dll),項目名輸入為MyGina,按下"OK"後,選擇Regular DLL with MFC statically linked,按下"Finish";

  2、使用Class Wizard重載CmyGinaApp類的InitInstance()和ExitInstance()兩個函數,並注意在Stdafx.h中加入#include ;

  3、在MyGina.h文件中說明"extern CMyGinaApp theApp",以便於程序其他地方對theApp的引用;在類CMyGinaApp中定義成員變量(具體內容見代碼部分);

  4、添加代碼,編譯程序。

  • 首頁
  • 上一頁
  • 1
  • 2
  • 下一頁
  • 尾頁
  • 共2頁
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved