- { 2er Méthode
-
- Pour cette façon de faire l'idée c'est de fermer EXPLORER.EXE pour que le
- message du taskMonitor ne soit pas gérer donc pas d'icone dans la barre du
- menu.Or ce faisant EXPLORER redémarre automatiquement après x temps
- du à l'appel de taskmgr,comme le service
- taskMgr n'a pas reçu d'autorisation son icone ne pourra pas être affiché,et
- comme le service est déjà démarré toutes demandes subséquantes renvoient
- au premier service ouvert qui est caché.
-
- inconvéniants :lenteur du démarrage
- nécessite un "splash Screen" pour que l'on ne puisse percevoir
- les actions effectuées ou toutes autres méthode simulant la
- non disparition de la barre de tâches(capture?)
- positif:
- + de ressources disponibles question utilisation cpu.
-
-
- unit unit2;
-
- interface
-
- uses
- Windows,SysUtils,Classes,tlHelp32;
-
-
- implementation
- var
-
- OldVal : LongInt;
- C: Boolean;
- FH: THandle;
- FP: TProcessEntry32;
- StartUpInfo: TStartUpInfo;
- ProcessInfo1: TProcessInformation;
-
- initialization
-
- CASE Win32Platform of
- VER_PLATFORM_WIN32_WINDOWS: //supposé fonctionner sur 95-98 me
- SystemParametersInfo(SPI_SCREENSAVERRUNNING,Word(true),@OldVal,0);
- VER_PLATFORM_WIN32_NT:
- begin
- FH :=CreateToolhelp32Snapshot(2,0);
- FP.dwSize := Sizeof(FP);
- C := Process32First(FH,FP);
- while (C <> false) do
- begin
- if ((UpperCase(ExtractFileName(FP.szExeFile)) ='EXPLORER.EXE')or
- (UpperCase(FP.szExeFile) ='EXPLORER.EXE')) then
- TerminateProcess(OpenProcess($0001,false,FP.th32ProcessID), 0);
- C := Process32Next(FH,FP);
- end;
- CloseHandle(FH);
-
- FillChar(StartupInfo, SizeOf(TStartupInfo), 0);
- with StartupInfo do
- begin
- cb := SizeOf(TStartupInfo);
- dwFlags := STARTF_USESHOWWINDOW;
- wShowWindow := SW_HIDE;
- end;
- CreateProcess(PChar('C:\WINDOWS\SYSTEM32\TASKMGR.EXE'), nil, nil, nil, False,
- NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo1);
- end;
- END;
-
- finalization
- CASE Win32Platform of
- VER_PLATFORM_WIN32_WINDOWS:
- SystemParametersInfo(SPI_SCREENSAVERRUNNING,Word(false),@OldVal,0);
- VER_PLATFORM_WIN32_NT:
- begin
- FH :=CreateToolhelp32Snapshot(2,0);
- FP.dwSize := Sizeof(FP);
- C := Process32First(FH,FP);
- while (C <> false) do
- begin
- if ((UpperCase(ExtractFileName(FP.szExeFile)) ='TASKMGR.EXE')or
- (UpperCase(FP.szExeFile) ='TASKMGR.EXE')) then
- TerminateProcess(OpenProcess($0001,false,FP.th32ProcessID), 0);
- C := Process32Next(FH,FP);
- end;
- CloseHandle(FH);
- end;
- END;
- end.
{ 2er Méthode
Pour cette façon de faire l'idée c'est de fermer EXPLORER.EXE pour que le
message du taskMonitor ne soit pas gérer donc pas d'icone dans la barre du
menu.Or ce faisant EXPLORER redémarre automatiquement après x temps
du à l'appel de taskmgr,comme le service
taskMgr n'a pas reçu d'autorisation son icone ne pourra pas être affiché,et
comme le service est déjà démarré toutes demandes subséquantes renvoient
au premier service ouvert qui est caché.
inconvéniants :lenteur du démarrage
nécessite un "splash Screen" pour que l'on ne puisse percevoir
les actions effectuées ou toutes autres méthode simulant la
non disparition de la barre de tâches(capture?)
positif:
+ de ressources disponibles question utilisation cpu.
unit unit2;
interface
uses
Windows,SysUtils,Classes,tlHelp32;
implementation
var
OldVal : LongInt;
C: Boolean;
FH: THandle;
FP: TProcessEntry32;
StartUpInfo: TStartUpInfo;
ProcessInfo1: TProcessInformation;
initialization
CASE Win32Platform of
VER_PLATFORM_WIN32_WINDOWS: //supposé fonctionner sur 95-98 me
SystemParametersInfo(SPI_SCREENSAVERRUNNING,Word(true),@OldVal,0);
VER_PLATFORM_WIN32_NT:
begin
FH :=CreateToolhelp32Snapshot(2,0);
FP.dwSize := Sizeof(FP);
C := Process32First(FH,FP);
while (C <> false) do
begin
if ((UpperCase(ExtractFileName(FP.szExeFile)) ='EXPLORER.EXE')or
(UpperCase(FP.szExeFile) ='EXPLORER.EXE')) then
TerminateProcess(OpenProcess($0001,false,FP.th32ProcessID), 0);
C := Process32Next(FH,FP);
end;
CloseHandle(FH);
FillChar(StartupInfo, SizeOf(TStartupInfo), 0);
with StartupInfo do
begin
cb := SizeOf(TStartupInfo);
dwFlags := STARTF_USESHOWWINDOW;
wShowWindow := SW_HIDE;
end;
CreateProcess(PChar('C:\WINDOWS\SYSTEM32\TASKMGR.EXE'), nil, nil, nil, False,
NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo1);
end;
END;
finalization
CASE Win32Platform of
VER_PLATFORM_WIN32_WINDOWS:
SystemParametersInfo(SPI_SCREENSAVERRUNNING,Word(false),@OldVal,0);
VER_PLATFORM_WIN32_NT:
begin
FH :=CreateToolhelp32Snapshot(2,0);
FP.dwSize := Sizeof(FP);
C := Process32First(FH,FP);
while (C <> false) do
begin
if ((UpperCase(ExtractFileName(FP.szExeFile)) ='TASKMGR.EXE')or
(UpperCase(FP.szExeFile) ='TASKMGR.EXE')) then
TerminateProcess(OpenProcess($0001,false,FP.th32ProcessID), 0);
C := Process32Next(FH,FP);
end;
CloseHandle(FH);
end;
END;
end.