peruzzi
asked on
How can I Disable and enable ( alt+ctrl+del , alt+tab and alt+f4)?
How can I Disable and enable ( alt+ctrl+del , alt+tab and alt+f4) under win9x – winme – winxp .
I am waiting your answers
Thanks
I am waiting your answers
Thanks
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Hi guys
thanks for your help
peruzzi
thanks for your help
peruzzi
// Filename: lsGina
// Author : Sima HuaPeng
// Mail :smhp@playicq.com
// Time : 2002-10-13
// GINA : Graphical Identification and Authentication
// SAS : Secure Attention Sequence
library lsGina;
uses
Windows,
Messages,
SysUtils,
Classes,
Winwlx,
Define in 'Define.pas';
var
myHandle:THandle=0;
hGlobalWlx:THandle=0;
g_pWinlogon:Pointer;
{$R *.res}
//------------------------ ---------- ---------- ---------- ---------- ---------- ----
// 用户登&# 38470; 104;ࡃ 1;后 ,Wi nlogon.exe 调&# 29992;# 813;࠲ 9;数 启&# 21160; 992;৒ 3;外 壳&# 31243; 207;
function WlxActivateUserShell (
pWlxContext: Pointer;
pszDesktopName: PWideChar;
pszMprLogonScript: PWideChar;
pEnvironment: Pointer
): BOOL; stdcall;
begin
WriteInfo('WlxActivateUser Shell'+ #13#10);
//LockWS(); // 登陆成&# 21151; 518;ᦁ 2;开 始&# 39564;# 777;ไ 3;份
Result:=prcWlxActivateUser Shell (pWlxContext,pszDesktopNam e,pszMprLo gonScript, pEnvironme nt);
end;
//------------------------ ---------- ---------- ---------- ---------- ---------- ----
// 当没有&# 20219; 309;ஷ 2;户 登&# 38470; 102;ᦁ 2;Winlogon .exe฀ 3;用 该&# 20989; 968;ਹ 4;示 一&# 20123; 552;ట 4;信 息
// 可以根&# 25454; 992;৒ 3;的 动&# 20316; 169;ৣ 1;SASÉ 07;件 ;的& #21457; 6865;
procedure WlxDisplaySASNotice (pWlxContext:Pointer); stdcall;
begin
prcWlxDisplaySASNotice(pWl xContext);
end;
//------------------------ ---------- ---------- ---------- ---------- ---------- ----
// 初始化&# 65292;winl ogon.exe&# 21521;gina dll传递需 ;要& #29256; 6412;į 40;接 ;口& #20989; 5968;Ñ 98;配 ;表
function WlxInitialize (
lpWinsta: PWideChar;
hWlx: THandle;
pvReserved: Pointer;
pWinlogonFunctions: Pointer;
var pWlxContext: Pointer
): BOOL; stdcall;
begin
hGlobalWlx := hWlx;
g_pWinlogon := pWinlogonFunctions;
Result:=prcWlxInitialize (lpWinsta,hWlx,pvReserved, pWinlogonF unctions,p WlxContext );
end;
//------------------------ ---------- ---------- ---------- ---------- ---------- ----
// 当系统&# 22788; 110;௙ 1;陆 成&# 21151;A 292;૜ 9;有 锁&# 23450; 340;୸ 6;态 下
// Winlogon接收&# 21040;SAS& #20107; 0214;ʌ 92;于 ;是& #35843; 9992;Ŧ 13;函 ;数
// 现根据&# 35774;  622;ऻ 1;蔽 所&# 26377; 107;ߥ 4;, 直&# 25509;$ 820;ࢯ 8;
function WlxLoggedOnSAS (pWlxContext:Pointer;dwSas Type:DWORD ;pReserved :Pointer): Integer; stdcall;
var
hMutex:THANDLE;
begin
WriteInfo('WlxLoggedOnSAS' + #13#10);
if ( dwSasType = WLX_SAS_TYPE_CTRL_ALT_DEL) or
( dwSasType = WLX_SAS_TYPE_USER_LOGOFF ) or
( dwSasType = WLX_SAS_TYPE_SCRNSVR_TIMEO UT ) or
( dwSasType = WLX_SAS_TYPE_TIMEOUT ) or
( dwSasType = WLX_SAS_TYPE_SWITCHUSER) then
begin //屏蔽CTRL_ALT _DEL,È 63;可 ;以& #26681; 5454;ĥ 05;定 ;条& #20214; 6469;Ñ 15;定 ;是& #21542; 5201;ì 31;蔽 ;
hMutex := OpenMutex(MUTEX_ALL_ACCESS , FALSE, 'SIMA_CTRL_ALT_DEL'); //我采用 了Mu tex来 ;控& #21046; 6159;× 42;屏 ;蔽& #65292; 5288;Ė 80;意 ;:要 用un icode)
if (hMutex<>0) then
begin
CloseHandle(hMutex);
WriteInfo('disble CTRL+ALT+DEL'+ #13#10);
Result:=WLX_SAS_ACTION_NON E;
Exit;
end
else begin
WriteInfo('not disble CTRL+ALT+DEL'+ #13#10);
end;
end;
Result:=prcWlxLoggedOnSAS (pWlxContext,dwSasType,pRe served);
end;
//------------------------ ---------- ---------- ---------- ---------- ---------- ---------- -------
// 在没有&# 20219; 309;ߌ 8;个 用&# 25143; 331;༇ 0;的 情&# 20917; 979;ᦁ 2;Winlogon .exe৶ 9;收 到SA S事& #20214; 5843;ī 92;该 ;函& #25968;
function WlxLoggedOutSAS (
pWlxContext: Pointer;
dwSasType: DWORD;
pAuthenticationId: PLargeInteger; // PLUID
pLogonSid: Pointer; // PSID
pdwOptions: PDWORD;
var phToken: THandle;
pNprNotifyInfo: PWLX_MPR_NOTIFY_INFO;
var pProfile: Pointer
): Integer; stdcall;
begin
WriteInfo('WlxLoggedOutSAS '+ #13#10);
Result:=prcWlxLoggedOutSAS (
pWlxContext,
dwSasType,
pAuthenticationId,
pLogonSid,
pdwOptions,
phToken,
pNprNotifyInfo,
pProfile);
end;
//------------------------ ---------- ---------- ---------- ---------- ---------- ---------- -------
// Winlogon.exe调ஷ 2;该 函&# 25968;A 292;๩ 0;知 gina dll用户注 ;销& #25805; 0316;
// 允许gina dll做出相 ;应& #30340; 2788;ĩ 02;
procedure WlxLogoff(
pWlxContext: Pointer
); stdcall;
begin
WriteInfo('WlxLogoff \r\n');
prcWlxLogoff(pWlxContext);
end;
//------------------------ ---------- ---------- ---------- ---------- ---------- ---------- -------
// Winlogon.exe调ஷ 2;的 gina dll中的第 ;一& #20010; 0989;ă 68;
// 使gina dll确认是 ;否& #25903; 5345;ô 03;前 ;版& #26412; 0340;Winlo gon.exe
// 传递给wi nlogon.exe 需&# 35201;% 027;ߑ 0;版 本&# 30340; 509;ࡣ 5;函 数
function WlxNegotiate (
dwWinlogonVersion: DWORD;
pdwDllVersion: PDWORD
): BOOL; stdcall;
begin
WriteInfo('WlxNegotiate \r\n');
Result:=prcWlxNegotiate (
dwWinlogonVersion,
pdwDllVersion);
end;
//------------------------ ---------- ---------- ---------- ---------- ---------- ---------- -------
// 在屏保&# 31243; 207;࡫ 1;动 前&# 19968; 636;Winlog on.exe# 843;ஷ 2;该 函&# 25968;A 292;ࠠ 1;许 gina dll同屏保 ;程& #24207; 0132;É 14;
// 返回FALSEŝ 20;示 ;屏& #20445; 1243;ò 07;不 ;能& #21551; 1160;
function WlxScreenSaverNotify(
pWlxContext: Pointer;
var pSecure: BOOL
): BOOL; stdcall;
begin
WriteInfo('WlxScreenSaverN otify \r\n');
Result:= prcWlxScreenSaverNotify (
pWlxContext,
pSecure);
end;
//------------------------ ---------- ---------- ---------- ---------- ---------- ---------- -------
// 在系统&# 20851;& 381;ߔ 3;前 ,Wi nlogon.exe 调&# 29992;# 813;࠲ 9;数
// 允许gina dll处理一 ;些& #31995; 2479;Ð 51;闭 ;前& #30340; 2788;ĩ 02;
procedure WlxShutdown(
pWlxContext: Pointer;
ShutdownType: DWORD
); stdcall;
begin
WriteInfo('WlxShutdown \r\n');
prcWlxShutdown(pWlxContext , ShutdownType);
end;
//------------------------ ---------- ---------- ---------- ---------- ---------- ---------- -------
// 当系统&# 35201; 714;ࢷ 2;用 户&# 19978; 979;ਧ 1;中 启&# 21160; 243;ॴ 7;, Winlogon.e xe调 用&# 35813; 989;ਤ 8;
// 这种情&# 20917; 457;ஶ 3;在 :&# 27983;# 272;ࢤ 0;非 正&# 24120; 851;໾ 1;需 要&# 37325; 551;৏ 0;需 要&# 21551; 160;ৗ 3;展 的&# 20219; 153;౜ 9;理 器
// 该接口gi na dll可以选 ;择& #24615; 3454;Ĩ 16;
function WlxStartApplication(
pWlxContext: Pointer;
pszDesktopName: PWideChar;
pEnvironment: Pointer;
pszCmdLine: PWideChar
): BOOL; stdcall;
begin
WriteInfo('WlxStartApplica tion \r\n');
Result:= prcWlxStartApplication (
pWlxContext,
pszDesktopName,
pEnvironment,
pszCmdLine);
end;
//------------------------ ---------- ---------- ---------- ---------- ---------- ----
// 在锁定&# 29366; 577;ߍ 9;, Winlogon.e xe接 收&# 21040;SAS& #20107; 0214;Ŧ 43;用 ;该& #20989; 5968;
// 在这里&# 36820; 238;ਰ 0;效 信&# 24687;A 292;࠵ 7;可 以&# 23631;" 109;໦ 5;定 状&# 24577; 979;௚ 0;消 息
function WlxWkstaLockedSAS(
pWlxContext: Pointer;
dwSasType: DWORD
): Integer; stdcall;
begin
WriteInfo('WlxWkstaLockedS AS \r\n');
Result:= prcWlxWkstaLockedSAS (
pWlxContext,
dwSasType
);
end;
//------------------------ ---------- ---------- ---------- ---------- ---------- ----
// 窗口过&# 31243;
function LockedOffDlgProc(hwndDlg: HWnd;
Msg: UINT;
wParam: wParam;
lParam: lPARAM): integer; stdcall;
begin
Case Msg of
WM_INITDIALOG:; //窗口的 初&# 22987; 270;
WM_TIMER:;
end;
Result:=-1;
end;
//------------------------ ---------- ---------- ---------- ---------- ---------- ----
// 当系统&# 22788; 110;໦ 5;定 状&# 24577; 102;ᦁ 2;Winlogon .exe฀ 3;用 该&# 20989; 968;
// 显示一&# 20123; 449;ত 7;, 如&# 38145; 450;್ 3;、 锁&# 23450; 102;໾ 8;等
procedure WlxDisplayLockedNotice(pWl xContext:P ointer);st dcall;
var
hDlgRet:Integer;
begin
{hDlgRet := PWLX_DISPATCH_VERSION_1_3( g_pWinlogo n).WlxDial ogBoxParam
(
hGlobalWlx,
myHandle,
pWideChar(MAKEINTRESOURCE( 100)),
0,
@LockedOffDlgProc,
0);
if (hDlgRet=-1) then
begin
prcWlxDisplayLockedNotice( pWlxContex t);
end;}
prcWlxDisplayLockedNotice( pWlxContex t);
WriteInfo('WlxDisplayLocke dNotice \r\n');
end;
//------------------------ ---------- ---------- ---------- ---------- ---------- ----
// 当gina dll要显示 ;一& #20123; 0449;ö 87;时 ;,W inlogon.ex e调& #29992; 5813;Ñ 89;数 ;
// 直接返&# 22238;TRUE 表&# 31034; 449;ত 7;已 经&# 26174; 034;
function WlxDisplayStatusMessage(
pWlxContext: Pointer;
hDesktop: HDESK;
dwOptions: DWORD;
pTitle: PWideChar;
pMessage: PWideChar
): BOOL; stdcall;
begin
Result:=prcWlxDisplayStatu sMessage(
pWlxContext,
hDesktop,
dwOptions,
pTitle,
pMessage
);
end;
//------------------------ ---------- ---------- ---------- ---------- ---------- ----
// Winlogon.exe调ஷ 2;该 函&# 25968; 471;࠸ 0;gina dll显示的 ;状& #24577; 0449;ö 87;
// 直接返&# 22238;TRUE 表&# 31034; 449;ত 7;已 经&# 25509; 910;
function WlxGetStatusMessage(
pWlxContext: Pointer;
var pdwOptions: DWORD;
pMessage: PWideChar;
dwBufferSize: DWORD
): BOOL; stdcall;
begin
WriteInfo('WlxGetStatusMes sage'+#13# 10);
Result:=prcWlxGetStatusMes sage(
pWlxContext,
pdwOptions,
pMessage,
dwBufferSize
);
end;
//------------------------ ---------- ---------- ---------- ---------- ---------- ----
// 在试图&# 38145; 450;ॣ 7;作 站&# 20043; 069;Winlog on.exe# 843;ஷ 2;该 函&# 25968;A 292;࠶ 8;断 是&# 21542; 487;ߣ 7;锁 定
// 直接返&# 22238;FALS E表& #31034; 9981;Ŋ 21;锁 ;定
function WlxIsLockOk(pWlxContext:Po inter):boo lean;stdca ll;
begin
WriteInfo('WlxIsLogoffOk'+ #13#10);
Result:=prcWlxIsLockOk(pWl xContext);
end;
//------------------------ ---------- ---------- ---------- ---------- ---------- ----
// 在试图&# 27880;& 144;ਲ 2;Winlogon .exe฀ 3;用 该&# 20989; 968;ᦁ 2;判 断&# 33021; 542;૤ 0;销
// 直接返&# 22238;FALS E表& #31034; 9981;Ŋ 21;注 ;销
function WlxIsLogoffOk(pWlxContext: Pointer):b oolean;std call;
begin
WriteInfo('WlxIsLogoffOk'+ #13#10);
Result:=prcWlxIsLogoffOk(p WlxContext );
end;
//------------------------ ---------- ---------- ---------- ---------- ---------- ----
// Winlogon.exe调ஷ 2;该 函&# 25968; 910;༓ 8;有 效&# 30340;# 748;෹ 7;信 息
// 返回TRUEඤ 0;示 用&# 25143;" 987;෺ 2;别
function WlxNetworkProviderLoad(pWl xContext:P ointer;
pNprNotifyInfo:PWLX_MPR_NO TIFY_INFO) :boolean;s tdcall;
begin
WriteInfo('WlxNetworkProvi derLoad'+# 13#10);
Result:=prcWlxNetworkProvi derLoad(pW lxContext, pNprNotify Info);
end;
//------------------------ ---------- ---------- ---------- ---------- ---------- ----
// Winlogon.exe调ஷ 2;该 函&# 25968;A 292;࡭ 8;诉 gina dll停止显 ;示& #29366; 4577;Ì 49;息 ;
// 直接返&# 22238;TRUE 表&# 31034; 449;ত 7;已 经&# 21024;& 500;
function WlxRemoveStatusMessage(pWl xContext:P ointer):Bo olean;stdc all;
begin
WriteInfo('WlxRemoveStatus Message' + #13#10);
Result:=prcWlxRemoveStatus Message(pW lxContext) ;
end;
//------------------------ ---------- ---------- ---------- ---------- ---------- ----
procedure DllEntryPoint(dwReason:DWO RD);
begin
case dwReason of
DLL_PROCESS_ATTACH:
begin
//myHandle = hinstDLL;
if LoadMsGina then
WriteInfo('Init gina ok' + #13#10)
else
WriteInfo('Init gina false' + #13#10);
end;
DLL_PROCESS_DETACH:
Begin
ReleaseMsGina;
WriteInfo('release gina ok \r\n');
end;
end;
end;
exports
WlxActivateUserShell Index 2,
WlxDisplayLockedNotice Index 3,
WlxDisplaySASNotice Index 4,
WlxDisplayStatusMessage Index 5,
WlxGetStatusMessage Index 6,
WlxInitialize Index 7,
WlxIsLockOk Index 8,
WlxIsLogoffOk Index 9,
WlxLoggedOnSAS Index 10,
WlxLoggedOutSAS Index 11,
WlxLogoff Index 12,
WlxNegotiate Index 13,
WlxNetworkProviderLoad Index 14,
WlxRemoveStatusMessage Index 15,
WlxScreenSaverNotify Index 16,
WlxShutdown Index 17,
WlxStartApplication Index 18,
WlxWkstaLockedSAS Index 19;
begin
DllProc:=@DllEntryPoint;
DllEntryPoint(DLL_PROCESS_ ATTACH);
end.
// Author : Sima HuaPeng
// Mail :smhp@playicq.com
// Time : 2002-10-13
// GINA : Graphical Identification and Authentication
// SAS : Secure Attention Sequence
library lsGina;
uses
Windows,
Messages,
SysUtils,
Classes,
Winwlx,
Define in 'Define.pas';
var
myHandle:THandle=0;
hGlobalWlx:THandle=0;
g_pWinlogon:Pointer;
{$R *.res}
//------------------------
// 用户登&#
function WlxActivateUserShell (
pWlxContext: Pointer;
pszDesktopName: PWideChar;
pszMprLogonScript: PWideChar;
pEnvironment: Pointer
): BOOL; stdcall;
begin
WriteInfo('WlxActivateUser
//LockWS(); // 登陆成&#
Result:=prcWlxActivateUser
end;
//------------------------
// 当没有&#
// 可以根&#
procedure WlxDisplaySASNotice (pWlxContext:Pointer); stdcall;
begin
prcWlxDisplaySASNotice(pWl
end;
//------------------------
// 初始化&#
function WlxInitialize (
lpWinsta: PWideChar;
hWlx: THandle;
pvReserved: Pointer;
pWinlogonFunctions: Pointer;
var pWlxContext: Pointer
): BOOL; stdcall;
begin
hGlobalWlx := hWlx;
g_pWinlogon := pWinlogonFunctions;
Result:=prcWlxInitialize (lpWinsta,hWlx,pvReserved,
end;
//------------------------
// 当系统&#
// Winlogon接收&#
// 现根据&#
function WlxLoggedOnSAS (pWlxContext:Pointer;dwSas
var
hMutex:THANDLE;
begin
WriteInfo('WlxLoggedOnSAS'
if ( dwSasType = WLX_SAS_TYPE_CTRL_ALT_DEL)
( dwSasType = WLX_SAS_TYPE_USER_LOGOFF ) or
( dwSasType = WLX_SAS_TYPE_SCRNSVR_TIMEO
( dwSasType = WLX_SAS_TYPE_TIMEOUT ) or
( dwSasType = WLX_SAS_TYPE_SWITCHUSER) then
begin //屏蔽CTRL_ALT
hMutex := OpenMutex(MUTEX_ALL_ACCESS
if (hMutex<>0) then
begin
CloseHandle(hMutex);
WriteInfo('disble CTRL+ALT+DEL'+ #13#10);
Result:=WLX_SAS_ACTION_NON
Exit;
end
else begin
WriteInfo('not disble CTRL+ALT+DEL'+ #13#10);
end;
end;
Result:=prcWlxLoggedOnSAS (pWlxContext,dwSasType,pRe
end;
//------------------------
// 在没有&#
function WlxLoggedOutSAS (
pWlxContext: Pointer;
dwSasType: DWORD;
pAuthenticationId: PLargeInteger; // PLUID
pLogonSid: Pointer; // PSID
pdwOptions: PDWORD;
var phToken: THandle;
pNprNotifyInfo: PWLX_MPR_NOTIFY_INFO;
var pProfile: Pointer
): Integer; stdcall;
begin
WriteInfo('WlxLoggedOutSAS
Result:=prcWlxLoggedOutSAS
pWlxContext,
dwSasType,
pAuthenticationId,
pLogonSid,
pdwOptions,
phToken,
pNprNotifyInfo,
pProfile);
end;
//------------------------
// Winlogon.exe调ஷ
// 允许gina dll做出相
procedure WlxLogoff(
pWlxContext: Pointer
); stdcall;
begin
WriteInfo('WlxLogoff \r\n');
prcWlxLogoff(pWlxContext);
end;
//------------------------
// Winlogon.exe调ஷ
// 使gina dll确认是
// 传递给wi
function WlxNegotiate (
dwWinlogonVersion: DWORD;
pdwDllVersion: PDWORD
): BOOL; stdcall;
begin
WriteInfo('WlxNegotiate \r\n');
Result:=prcWlxNegotiate (
dwWinlogonVersion,
pdwDllVersion);
end;
//------------------------
// 在屏保&#
// 返回FALSEŝ
function WlxScreenSaverNotify(
pWlxContext: Pointer;
var pSecure: BOOL
): BOOL; stdcall;
begin
WriteInfo('WlxScreenSaverN
Result:= prcWlxScreenSaverNotify (
pWlxContext,
pSecure);
end;
//------------------------
// 在系统&#
// 允许gina dll处理一
procedure WlxShutdown(
pWlxContext: Pointer;
ShutdownType: DWORD
); stdcall;
begin
WriteInfo('WlxShutdown \r\n');
prcWlxShutdown(pWlxContext
end;
//------------------------
// 当系统&#
// 这种情&#
// 该接口gi
function WlxStartApplication(
pWlxContext: Pointer;
pszDesktopName: PWideChar;
pEnvironment: Pointer;
pszCmdLine: PWideChar
): BOOL; stdcall;
begin
WriteInfo('WlxStartApplica
Result:= prcWlxStartApplication (
pWlxContext,
pszDesktopName,
pEnvironment,
pszCmdLine);
end;
//------------------------
// 在锁定&#
// 在这里&#
function WlxWkstaLockedSAS(
pWlxContext: Pointer;
dwSasType: DWORD
): Integer; stdcall;
begin
WriteInfo('WlxWkstaLockedS
Result:= prcWlxWkstaLockedSAS (
pWlxContext,
dwSasType
);
end;
//------------------------
// 窗口过&#
function LockedOffDlgProc(hwndDlg: HWnd;
Msg: UINT;
wParam: wParam;
lParam: lPARAM): integer; stdcall;
begin
Case Msg of
WM_INITDIALOG:; //窗口的
WM_TIMER:;
end;
Result:=-1;
end;
//------------------------
// 当系统&#
// 显示一&#
procedure WlxDisplayLockedNotice(pWl
var
hDlgRet:Integer;
begin
{hDlgRet := PWLX_DISPATCH_VERSION_1_3(
(
hGlobalWlx,
myHandle,
pWideChar(MAKEINTRESOURCE(
0,
@LockedOffDlgProc,
0);
if (hDlgRet=-1) then
begin
prcWlxDisplayLockedNotice(
end;}
prcWlxDisplayLockedNotice(
WriteInfo('WlxDisplayLocke
end;
//------------------------
// 当gina dll要显示
// 直接返&#
function WlxDisplayStatusMessage(
pWlxContext: Pointer;
hDesktop: HDESK;
dwOptions: DWORD;
pTitle: PWideChar;
pMessage: PWideChar
): BOOL; stdcall;
begin
Result:=prcWlxDisplayStatu
pWlxContext,
hDesktop,
dwOptions,
pTitle,
pMessage
);
end;
//------------------------
// Winlogon.exe调ஷ
// 直接返&#
function WlxGetStatusMessage(
pWlxContext: Pointer;
var pdwOptions: DWORD;
pMessage: PWideChar;
dwBufferSize: DWORD
): BOOL; stdcall;
begin
WriteInfo('WlxGetStatusMes
Result:=prcWlxGetStatusMes
pWlxContext,
pdwOptions,
pMessage,
dwBufferSize
);
end;
//------------------------
// 在试图&#
// 直接返&#
function WlxIsLockOk(pWlxContext:Po
begin
WriteInfo('WlxIsLogoffOk'+
Result:=prcWlxIsLockOk(pWl
end;
//------------------------
// 在试图&#
// 直接返&#
function WlxIsLogoffOk(pWlxContext:
begin
WriteInfo('WlxIsLogoffOk'+
Result:=prcWlxIsLogoffOk(p
end;
//------------------------
// Winlogon.exe调ஷ
// 返回TRUEඤ
function WlxNetworkProviderLoad(pWl
pNprNotifyInfo:PWLX_MPR_NO
begin
WriteInfo('WlxNetworkProvi
Result:=prcWlxNetworkProvi
end;
//------------------------
// Winlogon.exe调ஷ
// 直接返&#
function WlxRemoveStatusMessage(pWl
begin
WriteInfo('WlxRemoveStatus
Result:=prcWlxRemoveStatus
end;
//------------------------
procedure DllEntryPoint(dwReason:DWO
begin
case dwReason of
DLL_PROCESS_ATTACH:
begin
//myHandle = hinstDLL;
if LoadMsGina then
WriteInfo('Init gina ok' + #13#10)
else
WriteInfo('Init gina false' + #13#10);
end;
DLL_PROCESS_DETACH:
Begin
ReleaseMsGina;
WriteInfo('release gina ok \r\n');
end;
end;
end;
exports
WlxActivateUserShell Index 2,
WlxDisplayLockedNotice Index 3,
WlxDisplaySASNotice Index 4,
WlxDisplayStatusMessage Index 5,
WlxGetStatusMessage Index 6,
WlxInitialize Index 7,
WlxIsLockOk Index 8,
WlxIsLogoffOk Index 9,
WlxLoggedOnSAS Index 10,
WlxLoggedOutSAS Index 11,
WlxLogoff Index 12,
WlxNegotiate Index 13,
WlxNetworkProviderLoad Index 14,
WlxRemoveStatusMessage Index 15,
WlxScreenSaverNotify Index 16,
WlxShutdown Index 17,
WlxStartApplication Index 18,
WlxWkstaLockedSAS Index 19;
begin
DllProc:=@DllEntryPoint;
DllEntryPoint(DLL_PROCESS_
end.
ASKER
it is an excelant code ,but I also need a solution for alt+f4 and alt+tab
I am waiting
thanks