Windows system >> Windowsの知識 >  >> Windows Serverシステムのチュートリアル >> サーバー2000 >> シールドCTRL + ALT + DEL完璧なソリューションでWindows NT /2000

シールドCTRL + ALT + DEL完璧なソリューションでWindows NT /2000

  
WINDOWS 9X環境でははじめに、我々は(NULL、0 SPI_SCREENSAVERRUNNING、1、)てSystemParametersInfoを使用することができます。CTRL + ALT + DELをシールドするが、それはNT /2000環境では動作しません、使用は、この低レベルのキーボードフックをブロックすることができませんWH_KEYBOARD_LL ! NT /2000の機能に優れたシールドCTRL + ALT + DELを達成するための代替GINA DLL方式を通して。まず、ソースコード6Kをダウンロードし、対話型の乗場呼びWinLogonがGINA DLLの実装でサポートされているNT /2000での原則は、GINA DLLは、ユーザーのログイン認証要求を提供するために、対話型インタフェースを提供します。初期化中のWinLogonは、システムへのCTRL + ALT + DELメッセージを傍受レジスタなので、他のプログラムには、CTRL + ALT + DELメッセージを取得することはできません。 WinLogonがGINA DLLおよびデフォルトを相互に作用しますが(System32ディレクトリにある)MSGINA.DLLです。 Microsoftはまた、私たちを提供するインタフェース、我々はMSGINA.DLL代わりに、GINA DLLをコンパイルすることができます。 WinLogonは、初期化3デスクトップ中に作成された:(1)、Winlogonプロセスのデスクトップ:メインディスプレイウィンドウの安全インターフェイス、インターフェイスを着陸、CTRL + ALT + DELを押すと、など(2)、アプリケーションのデスクトップ:我々は通常見ますスクリーンセーバーディスプレイインターフェイス:それは私のコンピュータインタフェース(3)、デスクトップのスクリーンセーバーを得ました。ユーザーがログインした後、Ctrlキーを押しながら+ ALT + DELキーをする場合、呼び出し元の関数にWinLogonがGINA DLL出力:WlxLoggedOnSAS、この時間はWinlogonプロセスのデスクトップにあるが、私たちは彼に直接アプリケーションのデスクトップを回し、あなたは表示されませんWindowsのユーザーはCTRL + ALT + DELを押し、別の方法でセキュリティインターフェイス、後に、どのような役割を果たしています。我々は画面場合は、デスクトップを切り替えたときに点滅します!第二に、プログラムはWlxActivateUserShell WlxDisplayLockedNotice WlxDisplaySASNotice WlxDisplayStatusMessage WlxGetStatusMessage WlxInitialize WlxIsLockOk WlxIsLogoffOk WlxLoggedOnSAS WlxLoggedOutSAS WlxLogoff WlxNegotiate WlxNetworkProviderLoad WlxRemoveStatusMessage WlxScreenSaverNotify WlxShutdown WlxStartApplication WlxWkstaLockedSASプログラミングを簡単にするために出力するように、以下の機能(Winlogonプロセスコールを)GINA DLLを達成し、我々は、MSGINA.DLLアピールから自己を動的関数を得ます(以下NoReboot.DLL呼ぶ)DLL関数の定義はMSGINA.DLLに直接呼び出すことができます。 (" WlxLoggedOnSAS \\​​ R \\ N"); WriteInfo; {hMutexをHANDLE WINAPI WlxLoggedOnSAS(PVOID pWlxContext、DWORD dwSasType、PVOID保存する)がINT //情報の記録のために(場合dwSasType == WLX_SAS_TYPE_CTRL_ALT_DEL:今はWlxLoggedOnSAS関数で扱っています){//シールドCTRL_ALT_DELは、私はミューテックスが特定の条件に応じて注意(シールドかどうかを制御するために使用される使用//遮蔽するか否かを判定することができる:ユニコード)hMutex = OpenMutex(MUTEX_ALL_ACCESS、FALSE、L"を使用; _ac952_z_cn_CTRL_ALT_DEL");なら(hMutex)他WriteInfo({CloseHandleを(hMutex); WriteInfo(" disble CTRL + ALT + DEL \\ R \\ N"); WLX_SAS_ACTION_NONEを返すアプリケーション・デスクトップ画面を切り替える//、CTRL + ALT + DELをマスク} ");}戻りprcWlxLoggedOnSAS(//これは保存され、私はpWlxContext、dwSasTypeにMSGINA.DLLから取得する機能である);.}私たちは自分たちのプログラムで呼び出す必要がCTRL + ALT + DEL \\ rを\\ n個"をdisbleありませんhMutex = CreateMutex(NULL、FALSE、" _ac952_z_cn_CTRL_ALT_DEL");あなたは、CTRL + ALT + DELを遮蔽することができます。第三に、インストールしてGIAN DLLの製造における注意事項は、Unicodeを使用して、GINA DLLに注意を払う必要があります。 GINA DLLのインストール:キー名:\\ HKEY_LOCAL_MACHINE \\ SOFTWARE \\マイクロソフト\\ Windows NTの\\ CurrentVersionの\\ Winlogonプロセス変数名:GinaDLL変数の型:[REG_SZ]内容:"あなたのGINA DLLの"名前を付けなど;:" NoReboot.DLL :システムディレクトリ(SYSTEM32)にコピーし、あなたのGINA DLL(NoReboot.dll)は、マシンを再起動し、あなたのGINA DLL(NoReboot.dll)が実行されます。お使いのシステムにそこに着くされていない場合は、あるmsgina.dllを入力することができ、あなたのGINA DLL(NoReboot.dll)にコピー、DOSを入力、またはキーを削除し、セーフモードを入力してください。
Copyright © Windowsの知識 All Rights Reserved