2011-09-14 2 views
4

C# (또는 .NET)에서 외부 Windows 응용 프로그램을 관리하는 가장 좋은 방법은 무엇입니까?C#에서 외부 Windows 응용 프로그램을 어떻게 관리합니까?

지금까지는 System.Diagnostics.Process를 사용하여 프로세스를 시작할 수 있었지만 프로세스를 시작하거나 종료 할 수있었습니다. (내가 수집 한 것에서)

나는 System.Diagnostics.Process가 프로세스 윈도우에 요청을 보낼 CloseMainWindow() 루틴을 가지고 있다는 것을 알아 차렸다. 이 Process 클래스를 사용하여 다른 메시지를 보낼 수 있습니까? 1) 시작 2) 킬 프로세스 : 나는 다음과 같은 방법을 외부 프로그램을 관리하고 조작 할 수 있어야합니다

(만약 그렇다면, 사람이 어떻게이 창 메시지에 대해 배울 수있는 방향으로 날 지점 수 있습니다) 3) 응용 프로그램 (전체 화면과 작업 표시 줄) 4) 숨기기 응용 프로그램 (전체 화면과 작업 표시 줄)를 표시

더 자세한 사항 : 윈도우 7, 닷넷 3.5 프레임 워크

답변

0

해당 창으로 메시지를 보내보십시오. SendMessage을보십시오. 필요한 메시지는 SW_MINIMIZE, SW_RESTORESW_SHOWMAXIMIZED입니다.

0

당신이 원하는 것을하기 위해 윈도우 메시지를 보내려면 몇 가지 Win32 P/Invoke 물건을 사용해야 할 것입니다.

이 코드 샘플을 ShowWindow 또는 SendMessage에 표시하면 외부 창에 자체 표시 또는 숨김을 알립니다. 먼저 FindWindowEx을 사용하여 원하는 창 핸들을 가져와야합니다. 당신은 당신이 과정을 직접 시작하거나, 실행중인 프로세스 클래스 나 System.Diagnostics.Process의 방법을 사용하여 목록에서 찾을하면, 당신은 다른 옵션을 따를 수 있습니다, 다른 방법으로 원하는 모든 작업을 수행 할 수 있습니다

0

...

예를 들어,

이 핸들을 가지고 있다고 생각하면 : Process.MainWindowHandleSendMessagePostMessage으로 핸들에 메시지를 보낼 수 있습니다. 이렇게하면 매우 많은 작업을 수행 할 수 있습니다.

How to use the ShowWindow API to hide and show a form

내가 당신에게 더 많은 링크를 보낼 수 있지만 싶어하지 않습니다 또는 당신은

예를 들어이보기 ... SetWindowPos 또는 ShowWindow 또는 SetWindowLong처럼의 PInvoke API를 사용하고 모든 것을 정말 기본적으로 할 수있는 전체 MSDN 참조 ;-)

관련 문제