There's no need to modify memory.
C#:
Code:
[DllImport("kernel32.dll")]
static private extern IntPtr CreateMutex(IntPtr lpMutexAttributes, bool bInitialOwner
[DllImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool CloseHandle(IntPtr hObject);
private Process __SRClient;
public IntPtr __Handle { get; private set; };
....
private void Run(string path){
IntPtr mut1 = CreateMutex(IntPtr.Zero, false, "Silkroad Online Launcher");
IntPtr mut2 = CreateMutex(IntPtr.Zero, false, "Ready");
ProcessStartInfo __info = new ProcessStartInfo();
__info.FileName = path;
__info.UseShellExecute = false;
__info.WindowStyle = ProcessWindowStyle.Normal;
__info.Arguments = "0 /23 0 1"; //0x17 for vsro //0x12 for isro
__SRClient = Process.Start(__info);
__Handle = __SRClient.Handle;
}
Don't forget to call CloseHandle after you're done.
Avoid bumping in this section,only in black market.