Help to convert code from AutoHotkey in C#
#NoEnv if not A_IsAdmin { Run *RunAs "%A_ScriptFullPath%" ExitApp } IniRead, Address, NoTrialHud.ini, Address, Address, 0 if !Address { Address = 0x021AF244 IniWrite, %Address%, NoTrialHud.ini, Address, Address } ProcessName = PokerTracker4.exe Process, exist, %ProcessName% if ErrorLevel { MsgBox `tPoker Tracker 4 работает!`nЗакройте его и запустите программу заново! ExitApp } if A_OSVersion in WIN_7,WIN_8,WIN_VISTA Run *RunAs %ProcessName%,, UseErrorLevel else Run %ProcessName%,, UseErrorLevel if ErrorLevel = ERROR { MsgBox Не найден Poker Tracker 4! ExitApp } WinWait, PokerTracker Trial Version,,20 If ErrorLevel { MsgBox Ошибка запуска программы! ExitApp } Control, Enable,, Button3, PokerTracker Trial Version ControlClick, Button3, PokerTracker Trial Version,,,2 Gosub ReadStr if Result ; Result != 0, значит по этому адресу нет строки { MsgBox Строка не найдена по указанному адресу! ExitApp } Gosub ZeroString ; ========================================================= ReadStr: ReadSize = 2 ; VarSetCapacity(Buf, ReadSize, 0) ; PROCESS_VM_READ = 0x10 ; Process, Exist, %ProcessName% ; If(!ErrorLevel) { MsgBox, Процесс не найден. ExitApp } PID := ErrorLevel ; hProcess := DllCall("OpenProcess", UInt, PROCESS_VM_READ , Int, False , UInt, PID) If(!hProcess) { MsgBox, Не удалось открыть процесс. ExitApp } Ret := DllCall("ReadProcessMemory", UInt, hProcess , UInt, Address , UInt, &Buf , UInt, ReadSize , UInt, 0) DllCall("CloseHandle", UInt, hProcess) ; If(!Ret) { MsgBox, Не удалось прочитать. ExitApp } Result := NumGet(Buf, 0, "UInt") - 0x5254 ; ; 0x5254 - Начало строки TRIAL... return ; ========================================================= ZeroString: Size = 22 ; VarSetCapacity(Buf, Size, 0) ; NumPut(Data, Buf, 0, "UInt") ; PROCESS_VM_WRITE = 0x20 ; PROCESS_VM_OPERATION = 0x8 Process, Exist, %ProcessName% ; If(!ErrorLevel) { MsgBox, Процесс не найден. ExitApp } PID := ErrorLevel ; hProcess := DllCall("OpenProcess", "UInt", PROCESS_VM_WRITE | PROCESS_VM_OPERATION , "Int", False , "UInt", PID) If(!hProcess) { MsgBox, Не удалось открыть процесс. ExitApp } Ret := DllCall("WriteProcessMemory", "UInt", hProcess , "UInt", Address , "UInt", &Buf , "UInt", Size , "UInt", 0) DllCall("CloseHandle", "UInt", hProcess) ; If(!Ret) { MsgBox, Не удалось записать. ExitApp } return