2013-01-13 30 views
1

以下工作在process.start情況下很好。createprocess中的Process.arguments?

private string Path() 
     { 
      RegistryKey Key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Wizet\\"); 
      RegistryKey Location = Key.OpenSubKey("MapleStory"); 
      return Location.GetValue("ExecPath").ToString(); 
     } 

public bool Launch() 
     { 
      maplestory = new ProcessStartInfo(); 
      maplestory.FileName = Path() + @"\MapleStory.exe"; 
      maplestory.Arguments = "WebStart"; 

      MapleStory = Process.Start(maplestory); 
} 

我會在哪裏,現在放在」 .Arguments'如果我使用的CreateProcess並會在哪裏我把CREATE_SUSPENDED呢?

CreateProcess(AppName, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, false, 0, IntPtr.Zero, null, ref si, out pi); 

回答

0
CreateProcess(AppName, "WebStart", IntPtr.Zero, IntPtr.Zero, false, 0, IntPtr.Zero, null, ref si, out pi); 
1
public struct PROCESS_INFORMATION 
{ 
    public IntPtr hProcess; 
    public IntPtr hThread; 
    public uint dwProcessId; 
    public uint dwThreadId; 
} 

public struct STARTUPINFO 
{ 
    public uint cb; 
    public string lpReserved; 
    public string lpDesktop; 
    public string lpTitle; 
    public uint dwX; 
    public uint dwY; 
    public uint dwXSize; 
    public uint dwYSize; 
    public uint dwXCountChars; 
    public uint dwYCountChars; 
    public uint dwFillAttribute; 
    public uint dwFlags; 
    public short wShowWindow; 
    public short cbReserved2; 
    public IntPtr lpReserved2; 
    public IntPtr hStdInput; 
    public IntPtr hStdOutput; 
    public IntPtr hStdError; 
} 

public struct SECURITY_ATTRIBUTES 
{ 
    public int length; 
    public IntPtr lpSecurityDescriptor; 
    public bool bInheritHandle; 
} 

using System; 
using System.Diagnostics; 
using System.Runtime.InteropServices; 

namespace CreateProcess 
{ 
    public static void Main() 
    { 
     PROCESS_INFORMATION pi = new PROCESS_INFORMATION(); 
     STARTUPINFO si = new STARTUPINFO(); 

     CreateProcess("MapleStory.exe", "WebStart", IntPtr.Zero, IntPtr.Zero, false, 0, IntPtr.Zero, null, ref si, out pi); 
    } 

    [DllImport("Kernel32.dll")] 
    private static extern bool CreateProcess(string lpApplicationName, string lpCommandLine, IntPtr lpProcessAttributes, IntPtr lpThreadAttributes, bool bInheritHandles, uint dwCreationFlags, IntPtr lpEnvironment, string lpCurrentDirectory, ref STARTUPINFO lpStartupInfo,out PROCESS_INFORMATION lpProcessInformation); 
}