C#

[C#] 윈폼(winform)안에 메모장, 계산기 등 또 다른 애플리케이션(application) 실행하기.

정보처리마법사 2017. 1. 16. 10:44
반응형

[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, 000000x0001 | 0x0040);     
        }
cs

 


 클래스 안에 위와 같이 외부 DLL 을 임포트 해서 사용하는 LoadAnotherApplication() 메소드를 하나 만들어서 아래와 같이

사용하면  됩니다.



1
LoadAnotherApplication(@"c:\windows\system32\notepad.exe"this.Handle);
cs


 


잘 되는 군요.


 



이상으로 포스팅을 마칩니다. 감사합니다.


  





Fin.


잘 못 된 정보가 있으면 말씀해주세요~


공감버튼 클릭은 작성자에게 큰 힘이 됩니다.  행복한 하루 되세요.


 



반응형