2 Fragen O.o

02/24/2011 20:58 Toasty-man#1
Hallo Leute!
Ich wollte mal für S4 einen suspender machen nur ich bekomme 2 nein sogesehen 4 sachen nicht hin O.o
die ersten drei sachen sind das Suspenden, Resumen und das Killen eines prozesses O.o ich hab eig die richtigen func dafür nur wenn ich dann auf suspend oder die andern 2 klicke kommt nix ...
Und Das Zweite ist ich möchte ein label so machen also als erstes steht ein prozess dann steht links ...Nicht Gefunden... und ich das so haben das wenn ein bestimmter prozess auftaucht sich das in z.B. Läuft Ändert ich hab schon gegooglet aber vergeblich O.o
Bitte Helft Mir! :(
Danke Im Voraus!
Lg Toasty-man

Aber damit ihr mir besser helfen könnt hier ein nachgestelltes script:
02/24/2011 21:09 derpo#2
Eine ProcessTerminate UDF brauchst du nicht, es gibt schon ProcessClose("exe.exe").
Mach am Anfang des Skripts #RequireAdmin
Vielleicht ist das Programm vor dem ganzen geschützt?
Probier es mal mit dieser UDF :
PHP Code:
Func _ProcessSuspend($process)
$processid ProcessExists($process)
If 
$processid Then
    $ai_Handle 
DllCall("kernel32.dll"'int''OpenProcess''int'0x1f0fff'int'False'int'$processid)
    
$i_sucess DllCall("ntdll.dll","int","NtSuspendProcess","int",$ai_Handle[0])
    
DllCall('kernel32.dll''ptr''CloseHandle''ptr'$ai_Handle)
    If 
IsArray($i_sucessThen 
        
Return 1
    
Else
        
SetError(1)
        Return 
0
    
Endif
Else
    
SetError(2)
    Return 
0
Endif
EndFunc

Func _ProcessResume
($process)
$processid ProcessExists($process)
If 
$processid Then
    $ai_Handle 
DllCall("kernel32.dll"'int''OpenProcess''int'0x1f0fff'int'False'int'$processid)
    
$i_sucess DllCall("ntdll.dll","int","NtResumeProcess","int",$ai_Handle[0])
    
DllCall('kernel32.dll''ptr''CloseHandle''ptr'$ai_Handle)
    If 
IsArray($i_sucessThen 
        
Return 1
    
Else
        
SetError(1)
        Return 
0
    
Endif
Else
    
SetError(2)
    Return 
0
Endif
EndFunc 
02/24/2011 21:24 Toasty-man#3
requireadmin hat ich doch drinne naja kanns ned gucken weil mein handy diese haesslichdn spoiler ned oeffnen will xD danke fuer die schnelle antwort werde es morgen testen
02/25/2011 13:55 PenGuin :O#4
Quote:
Eine ProcessTerminate UDF brauchst du nicht, es gibt schon ProcessClose("exe.exe").
TerminateProcess und ProcessClose ist nochmal ein Unterschied.
02/25/2011 22:12 Toasty-man#5
Quote:
Originally Posted by derpo View Post
Eine ProcessTerminate UDF brauchst du nicht, es gibt schon ProcessClose("exe.exe").
Mach am Anfang des Skripts #RequireAdmin
Vielleicht ist das Programm vor dem ganzen geschützt?
Probier es mal mit dieser UDF :
PHP Code:
Func _ProcessSuspend($process)
$processid ProcessExists($process)
If 
$processid Then
    $ai_Handle 
DllCall("kernel32.dll"'int''OpenProcess''int'0x1f0fff'int'False'int'$processid)
    
$i_sucess DllCall("ntdll.dll","int","NtSuspendProcess","int",$ai_Handle[0])
    
DllCall('kernel32.dll''ptr''CloseHandle''ptr'$ai_Handle)
    If 
IsArray($i_sucessThen 
        
Return 1
    
Else
        
SetError(1)
        Return 
0
    
Endif
Else
    
SetError(2)
    Return 
0
Endif
EndFunc

Func _ProcessResume
($process)
$processid ProcessExists($process)
If 
$processid Then
    $ai_Handle 
DllCall("kernel32.dll"'int''OpenProcess''int'0x1f0fff'int'False'int'$processid)
    
$i_sucess DllCall("ntdll.dll","int","NtResumeProcess","int",$ai_Handle[0])
    
DllCall('kernel32.dll''ptr''CloseHandle''ptr'$ai_Handle)
    If 
IsArray($i_sucessThen 
        
Return 1
    
Else
        
SetError(1)
        Return 
0
    
Endif
Else
    
SetError(2)
    Return 
0
Endif
EndFunc 
Das mit dem processclose hat super funktioniert aber das mit dem suspenden und resumen ist immernoch das selbe nix passiert ...
02/26/2011 01:44 PenGuin :O#6
Liegt daran, dass OpenProcess durch Aegis.exe geblockt wird (GetLastError() gibt ERROR_ACCESS_DENIED zurück).
02/26/2011 12:55 derpo#7
Vielleicht OpenProcess sofort nach dem Start von Aegis aufrufen
02/26/2011 14:49 PenGuin :O#8
Nein, dann sind die DLLs bereits in die Prozesse geladen.