Code:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Process.au3>
Global Const $PSR = 0x0800
Global Const $SYN = 0x00100000
#Region
$Form1 = GUICreate("[Open Source] Suspender", 266, 103, 360, 249)
GUISetFont(8, 400, 0, "Century Gothic")
$Button2 = GUICtrlCreateButton("Suspend", 80, 8, 75, 17)
$Button4 = GUICtrlCreateButton("Suspend", 80, 32, 75, 17)
$Button3 = GUICtrlCreateButton("Suspend", 80, 56, 75, 17)
$Button5 = GUICtrlCreateButton("Suspend", 80, 80, 75, 17)
$Button7 = GUICtrlCreateButton("Resume all", 184, 8, 75, 17)
$Button6 = GUICtrlCreateButton("Suspend all", 184, 32, 75, 17)
$Button8 = GUICtrlCreateButton("Close all", 184, 56, 75, 17)
$Button10 = GUICtrlCreateButton("Auto Suspend", 184, 80, 75, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Century Gothic")
$Label1 = GUICtrlCreateLabel("HGWC", 8, 8, 53, 22, -1, $GUI_WS_EX_PARENTDRAG)
GUICtrlSetFont(-1, 11, 800, 0, "Century Gothic")
$Label2 = GUICtrlCreateLabel("Aegis/64", 8, 32, 68, 22, -1, $GUI_WS_EX_PARENTDRAG)
GUICtrlSetFont(-1, 11, 800, 0, "Century Gothic")
$Label3 = GUICtrlCreateLabel("S4 Client", 8, 56, 67, 22, -1, $GUI_WS_EX_PARENTDRAG)
GUICtrlSetFont(-1, 11, 800, 0, "Century Gothic")
$Label4 = GUICtrlCreateLabel("XTrap", 8, 80, 45, 22, -1, $GUI_WS_EX_PARENTDRAG)
GUICtrlSetFont(-1, 11, 800, 0, "Century Gothic")
$Group1 = GUICtrlCreateGroup("", 0, -8, 161, 113)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("", 176, -8, 89, 113)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Pic1 = GUICtrlCreatePic("", 0, 0, 265, 105, -1, $GUI_WS_EX_PARENTDRAG)
GUISetState(@SW_SHOW)
#EndRegion
WinSetTrans($Form1, "", "230")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button2
_SuspendHGWC()
Case $Button3
_SuspendS4()
Case $Button4
_SuspendAegis()
Case $Button5
_SuspendXTrap()
Case $Button10
_AutoSuspend()
Case $Button7
_ResumeAll()
Case $Button6
_SuspendAll()
Case $Button8
_CloseAll()
EndSwitch
WEnd
Func _ResumeProcess($iPID)
$vDLL = DllOpen('Kernel32.dll')
$vProc = DllCall($vDLL, "hwnd", "OpenProcess", "dword", $SYN + $PSR, "int", False, "dword", $iPID)
$vReturn = DllCall("ntdll.dll", "int", "NtResumeProcess", "hwnd", $vProc[0])
DllCall($vDLL, "int", "CloseHandle", "hwnd", $vProc[0])
Return $vReturn[0]
EndFunc ;==>_ResumeProcess
Func _SuspendProcess($iPID)
$vDLL = DllOpen('Kernel32.dll')
$vProc = DllCall($vDLL, "hwnd", "OpenProcess", "dword", $SYN + $PSR, "int", False, "dword", $iPID)
$vReturn = DllCall("ntdll.dll", "int", "NtSuspendProcess", "hwnd", $vProc[0])
DllCall($vDLL, "int", "CloseHandle", "hwnd", $vProc[0])
Return $vReturn[0]
EndFunc ;==>_SuspendProcess
;--------------------------------------------------------------------------------------------------
Func _SuspendHGWC()
Local $PID = ProcessExists("HGWC.exe")
_SuspendProcess($PID)
If Not ProcessExists("HGWC.exe") Then
SplashTextOn("", "~ ERROR ~", "100", "35", "-1", "-1", 1, "Century Gothic", "10", "400")
Sleep(500)
SplashOff()
Else
GUICtrlSetData($Button2, "Done")
GUICtrlSetState($Button2, $GUI_DISABLE)
EndIf
EndFunc ;==>_SuspendHGWC
Func _SuspendAegis()
Local $PID = ProcessExists("Aegis.exe")
Local $GID = ProcessExists("Aegis64.exe")
_SuspendProcess($PID)
_SuspendProcess($GID)
If Not ProcessExists("Aegis.exe") Then
SplashTextOn("", "~ ERROR ~", "100", "35", "-1", "-1", 1, "Century Gothic", "10", "400")
Sleep(500)
SplashOff()
Else
GUICtrlSetData($Button4, "Done")
GUICtrlSetState($Button4, $GUI_DISABLE)
EndIf
EndFunc ;==>_SuspendAegis
Func _SuspendS4()
Local $PID = ProcessExists("S4Client.exe")
_SuspendProcess($PID)
If Not ProcessExists("S4Client.exe") Then
SplashTextOn("", "~ ERROR ~", "100", "35", "-1", "-1", 1, "Century Gothic", "10", "400")
Sleep(500)
SplashOff()
Else
GUICtrlSetData($Button3, "Done")
GUICtrlSetState($Button3, $GUI_DISABLE)
EndIf
EndFunc ;==>_SuspendS4
Func _SuspendXTrap()
Local $PID = ProcessExists("XTrap.xt")
_SuspendProcess($PID)
If Not ProcessExists("XTrap.xt") Then
SplashTextOn("", "~ ERROR ~", "100", "35", "-1", "-1", 1, "Century Gothic", "10", "400")
Sleep(500)
SplashOff()
Else
GUICtrlSetData($Button5, "Done")
GUICtrlSetState($Button5, $GUI_DISABLE)
EndIf
EndFunc ;==>_SuspendXTrap
;----------------------------------------------------------------------------------------------
Func _ResumeAll()
Local $PID = ProcessExists("S4Client.exe")
Local $SID = ProcessExists("HGWC.exe")
Local $LID = ProcessExists("Aegis.exe")
Local $NID = ProcessExists("Aegis64.exe")
Local $MID = ProcessExists("XTrap.xt")
_ResumeProcess($PID)
_ResumeProcess($SID)
_ResumeProcess($LID)
_ResumeProcess($NID)
_ResumeProcess($MID)
GUICtrlSetData($Button2, "Suspend")
GUICtrlSetData($Button3, "Suspend")
GUICtrlSetData($Button4, "Suspend")
GUICtrlSetData($Button5, "Suspend")
GUICtrlSetState($Button2, $GUI_ENABLE)
GUICtrlSetState($Button3, $GUI_ENABLE)
GUICtrlSetState($Button4, $GUI_ENABLE)
GUICtrlSetState($Button5, $GUI_ENABLE)
GUICtrlSetState($Button6, $GUI_ENABLE)
ToolTip('', 0, 0)
EndFunc ;==>_ResumeAll
Func _SuspendAll()
Local $PID = ProcessExists("S4Client.exe")
Local $SID = ProcessExists("HGWC.exe")
Local $LID = ProcessExists("Aegis.exe")
Local $NID = ProcessExists("Aegis64.exe")
Local $MID = ProcessExists("XTrap.xt")
_SuspendProcess($PID)
_SuspendProcess($SID)
_SuspendProcess($LID)
_SuspendProcess($NID)
_SuspendProcess($MID)
If ProcessExists("S4Client.exe") Then
GUICtrlSetData($Button3, "Done")
GUICtrlSetState($Button3, $GUI_DISABLE)
EndIf
If ProcessExists("Aegis.exe") Then
GUICtrlSetData($Button4, "Done")
GUICtrlSetState($Button4, $GUI_DISABLE)
EndIf
If ProcessExists("XTrap.xt") Then
GUICtrlSetData($Button5, "Done")
GUICtrlSetState($Button5, $GUI_DISABLE)
EndIf
If Not ProcessExists("HGWC.exe") Then
SplashTextOn("", "~ ERROR ~", "100", "35", "-1", "-1", 1, "Century Gothic", "10", "400")
Sleep(500)
SplashOff()
Else
GUICtrlSetData($Button2, "Done")
GUICtrlSetState($Button2, $GUI_DISABLE)
GUICtrlSetState($Button6, $GUI_DISABLE)
EndIf
EndFunc ;==>_SuspendAll
Func _CloseAll()
_ProcessCloseForce("S4Client.exe")
_ProcessCloseForce("Aegis.exe")
_ProcessCloseForce("Aegis64.exe")
_ProcessCloseForce("HGWC.exe")
_ProcessCloseForce("XTrap.xt")
GUICtrlSetData($Button2, "Closed")
GUICtrlSetData($Button3, "Closed")
GUICtrlSetData($Button4, "Closed")
GUICtrlSetData($Button5, "Closed")
GUICtrlSetState($Button2, $GUI_ENABLE)
GUICtrlSetState($Button3, $GUI_ENABLE)
GUICtrlSetState($Button4, $GUI_ENABLE)
GUICtrlSetState($Button5, $GUI_ENABLE)
Sleep(700)
GUICtrlSetData($Button2, "Suspend")
GUICtrlSetData($Button3, "Suspend")
GUICtrlSetData($Button4, "Suspend")
GUICtrlSetData($Button5, "Suspend")
EndFunc ;==>_CloseAll
Func _AutoSuspend()
GUICtrlSetState($Button10, $GUI_DISABLE)
ToolTip("Warte auf S4 Client...", 0, 0)
ProcessWait("S4Client.exe")
Sleep(1000)
Local $PID = ProcessExists("S4Client.exe")
Local $SID = ProcessExists("HGWC.exe")
Local $LID = ProcessExists("Aegis.exe")
Local $NID = ProcessExists("Aegis64.exe")
_SuspendProcess($PID)
_SuspendProcess($SID)
_SuspendProcess($LID)
_SuspendProcess($NID)
GUICtrlSetState($Button2, $GUI_DISABLE)
GUICtrlSetState($Button3, $GUI_DISABLE)
GUICtrlSetState($Button4, $GUI_DISABLE)
GUICtrlSetData($Button2, "Done")
GUICtrlSetData($Button3, "Done")
GUICtrlSetData($Button4, "Done")
ToolTip('###Suspendet!###', 0, 0)
EndFunc ;==>_AutoSuspend
Func _ProcessCloseForce($RProcessName)
$RProcessPID = ProcessExists($RProcessName)
_RunDOS("taskkill /pid " & $RProcessPID & " /f /t")
EndFunc ;==>_ProcessCloseForce