반응형
[C#] 윈폼(winform)안에 메모장, 계산기 등 또 다른 애플리케이션(application) 실행하기.
윈도우폼(winform)안에 메모장, 계산기 등 또 다른 애플리케이션(application) 실행하기.
안녕하세요 정보처리마법사 입니다.
이번 포스팅의 주제는 윈폰안에 다른 어플리케이션을 실행하는 방법에 관한 내용입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | [DllImport("user32.dll", SetLastError = true)] private static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent); [DllImport("user32.dll", EntryPoint = "SetWindowPos")] public static extern IntPtr SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int x, int Y, int cx, int cy, int wFlags); private void LoadAnotherApplication(string path, IntPtr handle) { Stopwatch sw = new Stopwatch(); sw.Start(); int timeout = 10 * 1000; / Process p = Process.Start(path); while (p.MainWindowHandle == IntPtr.Zero) { System.Threading.Thread.Sleep(10); p.Refresh(); if (sw.ElapsedMilliseconds > timeout) { sw.Stop(); return; } } SetParent(p.MainWindowHandle, handle); SetWindowPos(p.MainWindowHandle, 0, 0, 0, 0, 0, 0x0001 | 0x0040); } | cs |
클래스 안에 위와 같이 외부 DLL 을 임포트 해서 사용하는 LoadAnotherApplication() 메소드를 하나 만들어서 아래와 같이
사용하면 됩니다.
1 | LoadAnotherApplication(@"c:\windows\system32\notepad.exe", this.Handle); | cs |
잘 되는 군요.
이상으로 포스팅을 마칩니다. 감사합니다.
Fin.
잘 못 된 정보가 있으면 말씀해주세요~
공감버튼 클릭은 작성자에게 큰 힘이 됩니다. 행복한 하루 되세요.
반응형