Code:
#NoTrayIcon
If FileExists("Launcher.exe") Then
Else
If Not IsDeclared("iMsgBoxAnswer") Then Local $IMSGBOXANSWER
$IMSGBOXANSWER = MsgBox(16, "[SKL]ByPass Notice", "Cannot Find Launcher.exe! Please Make Sure Launcher.Exe Is In The CrossFire Folder!",3)
Select
Case $IMSGBOXANSWER = -1
Case Else
EndSelect
Exit
EndIf
If FileExists("HGWC.exe") Then
Else
If Not IsDeclared("iMsgBoxAnswer") Then Local $IMSGBOXANSWER
$IMSGBOXANSWER = MsgBox(16, "[SKL]ByPass Notice", "Cannot Find Launcher.exe! Please Make Sure Launcher.Exe Is In The CrossFire Folder!",3)
Select
Case $IMSGBOXANSWER = -1
Case Else
EndSelect
Exit
EndIf
ProcessClose("HGWC.exe")
ProcessClose("crossfire.exe")
ProcessClose("XTrap.xt")
FileCopy("HGWC.exe", "HGWC-Backup.exe")
FileInstall("HGWC.exe", "HGWC.exe", 1)
Run("patcher_cf.exe")
ProcessWait("patcher_cf.exe")
ProcessWait("crossfire.exe")
_PROCESSSUSPEND("crossfire.exe")
_PROCESSSUSPEND("HGWC.exe")
Run("launcher.exe")
FileInstall("XTrapVa.dll", "XTrap\XTrapVa.dll", 1)
_PROCESSRESUME("crossfire.exe")
ProcessWait("XTrap.xt")
_PROCESSSUSPEND("Xtrap.xt")
Sleep(2000)
WinWaitActive("CrossFire")
ProcessClose("HGWC.exe")
ProcessClose("Xtrap.xt")
Exit
Func _PROCESSSUSPEND($PROCESS)
$PROCESSID = ProcessExists($PROCESS)
If $PROCESSID Then
$AI_HANDLE = DllCall("kernel32.dll", "int", "OpenProcess", "int", 2035711, "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_SUCESS) Then
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", 2035711, "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_SUCESS) Then
Return 1
Else
SetError(1)
Return 0
EndIf
Else
SetError(2)
Return 0
EndIf
EndFunc