C#으로 짠 또다른 프로그램(other.exe)을 실행하기위해서
System.Diagnostics.Process proc = System.Diagnostics.Process.Start(“./other.exe”);
종료
public const int WM_SYSCOMMAND = 0x0112;
public const int SC_CLOSE = 0xF060;
[DllImport(“user32.dll”)]
public static extern int FindWindow(
string lpClassName, // class name
string lpWindowName // window name
);
[DllImport(“user32.dll”)]
public static extern int SendMessage(
int hWnd, // handle to destination window
uint Msg, // message
int wParam, // first message parameter
int lParam // second message parameter
);
1. FindWindows로 창핸들을 찾아온다
int iHandle=Win32.FindWindow(className ,txtWndNm.Text);
2. SendMessage로 클로즈메세지를 보낸다.
int j=Win32.SendMessage(iHandle, Win32.WM_SYSCOMMAND,Win32.SC_CLOSE, 0);
Process.Kill()을 했는데도 안죽은게 이상하긴 하지만 위와 같이 사용하시면 확실히 죽을겁니다.
또한 외부 프로그램에 Message를 던질수도 있습니다.