Windows XP是美國微軟公司研發(fā)的基于X86、X64架構(gòu)的PC和平板電腦使用的操作系統(tǒng),于2001年8月24日發(fā)布RTM版本,并于2001年10月25日開始零售。其名字中“XP”的意思來自英文中的“體驗(yàn)(Experience)”。該系統(tǒng)是繼Windows 2000及Windows ME之后的下一代Windows操作系統(tǒng),也是微軟首個(gè)面向消費(fèi)者且使用Windows NT5.1架構(gòu)的操作系統(tǒng)。
Ctrl+Alt+Del組合鍵幾乎所有用戶都知道,尤其是某程序崩潰的時(shí)候,而Ctrl+Alt+Del雖然方便,有時(shí)候卻并不需要嗎,甚至有些多余,比如你在玩游戲的時(shí)候,你一定不希望窗口突然之間就被切換出去了,在需要時(shí)我們?cè)撊绾纹帘蜟trl+Alt+Del呢?
XP系統(tǒng)如何屏蔽鍵盤某個(gè)按鍵?
在Windows 9x/Me系統(tǒng)中,屏蔽Ctrl+Alt+Del和各種任務(wù)開關(guān)鍵的方法是通過下面的方法實(shí)現(xiàn)的:
BOOL bOldState;
SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, TRUE, &bOldState, 0);
MS大佬認(rèn)為這種方法很業(yè)余,所以在Windows NT/2000/XP中對(duì)此進(jìn)行了修改。在這些較新的Windows版本中用戶登陸使用Winlogon和GINA——Graphical Identification and Authentication,意思是圖形化的身份認(rèn)證,挺嚇唬人的是不是!其實(shí)就那么回事。Winlogon是Windows系統(tǒng)的一部分,它專門提供交互式登陸支持,而GINA則是Winlogon用來實(shí)現(xiàn)認(rèn)證的一個(gè)DLL——這個(gè)DLL就是msgina.dll。WlxInitialize、WlxActivateUserShell便是其中輸出,當(dāng)然不知這兩個(gè),還有別的。前者進(jìn)行自身的初始化,后者激活用戶的外殼程序。Windows就是用這個(gè)DLL來實(shí)現(xiàn)用戶名+口令的身份認(rèn)證的,但是開發(fā)人員可以用自己的GINA代替msgina.dll。例如,實(shí)現(xiàn)智能卡、視網(wǎng)膜掃描儀、DNA檢查等等認(rèn)證機(jī)制來代替輸入用戶名+口令形式的身份檢查。 下面的表格中列出了與GINA有關(guān)的全部函數(shù)。其中有一個(gè)是WlxLoggedOnSAS,當(dāng)按下Ctrl+Alt+Del 鍵時(shí),Winlogon便調(diào)用這個(gè)函數(shù)。
(表一)GINA 函數(shù)一覽表 函數(shù) 描述
WlxActivateUserShell激活用戶外殼程序
WlxDisplayLockedNotice允許GINA DLL 顯示鎖定信息
WlxDisplaySASNotice 當(dāng)沒有用戶登陸時(shí),Winlogon調(diào)用此函數(shù)
WlxDisplayStatusMessageWinlogon 用一個(gè)狀態(tài)信息調(diào)用此函數(shù)進(jìn)行顯示
WlxGetConsoleSwitchCredentials Winlogon調(diào)用此函數(shù)讀取當(dāng)前登陸用戶的信任信息,并透明地將它們傳到目標(biāo)會(huì)話
WlxGetStatusMessage Winlogon 調(diào)用此函數(shù)獲取當(dāng)前狀態(tài)信息
WlxInitialize 針對(duì)指定的窗口位置進(jìn)行GINA DLL初始化
WlxIsLockOk 驗(yàn)證工作站正常鎖定
WlxIslogoffOk 驗(yàn)證注銷正常
WlxLoggedOnSAS 用戶已登陸并且工作站沒有被加鎖,如果此時(shí)接收到SAS事件,則Winlogon 調(diào)用此函數(shù)
WlxLoggedOutSAS 沒有用戶登陸,如果此時(shí)收到SAS事件,則Winlogon 調(diào)用此函數(shù)
WlxLogoff 請(qǐng)求注銷操作時(shí)通知GINA DLL
WlxNegotiate 表示當(dāng)前的Winlogon版本是否能使用GINA DLL
WlxNetworkProviderLoad 在加載網(wǎng)絡(luò)服務(wù)提供程序收集了身份和認(rèn)證信息后,Winlogon 調(diào)用此函數(shù)
WlxRemoveStatusMessage Winlogon 調(diào)用此函數(shù)告訴GINA DLL 停止顯示狀態(tài)信息
WlxScreensaverNotify 允許GINA與屏幕保護(hù)操作交互
WlxShutdown 在關(guān)閉之前Winlogon 調(diào)用此函數(shù),允許GINA實(shí)現(xiàn)任何關(guān)閉任務(wù),例如從讀卡器中退出智能卡
WlxStartApplication 當(dāng)系統(tǒng)需要在用戶的上下文中啟動(dòng)應(yīng)用程序時(shí)調(diào)用此函數(shù)
WlxWkstaLockedSAS當(dāng)工作站被鎖定,如果接收到一個(gè)SAS,則Winlogon 調(diào)用此函數(shù)
在默認(rèn)情況下,GINA顯示登陸對(duì)話框,用戶輸入用戶名及口令。所以要想屏蔽掉Ctrl+Alt+Del,則可以寫一個(gè)新的MyGina.dll,其中提供接口調(diào)用msgina.dll的函數(shù)WlxLoggedOnSAS,從而實(shí)現(xiàn)Ctrl+Alt+Del屏蔽;蛘呔帉懸粋(gè)鍵盤驅(qū)動(dòng)程序來實(shí)現(xiàn)。
Windows XP服役時(shí)間長(zhǎng)達(dá)13年,產(chǎn)生的經(jīng)濟(jì)價(jià)值也較高。2014年4月8日,微軟終止對(duì)該系統(tǒng)的技術(shù)支持,但在此之后仍在一些重大計(jì)算機(jī)安全事件中對(duì)該系統(tǒng)發(fā)布了補(bǔ)丁。
|