C 레거시 응용 프로그램이 있는데이 응용 프로그램은 시간이 지남에 따라 창이 열리고 서버 응용 프로그램이 닫힙니다.다른 프로세스의 창을 앞으로 가져 오기
동일한 컴퓨터에서 C# winforms 앱을 실행하고 있습니다.
내 목표는 다음과 같습니다. C# 응용 프로그램이 내 C 응용 프로그램에 win32 메시지를 보냅니다. C 앱이 창을 엽니 다. 나는 새로 열어 진 C 윈도우를 C# app의 앞쪽으로 가져 오길 바란다. 여기
현재 프로세스입니다- 가 C 번호는 C
- C는
- C 앞으로
- 을 자신을 가지고 시도 새 창을 수신하고 열립니다로는 Win32 메시지를 보냅니다 (나는에서 궁금하네요 이 점은 C가 '내 앞에 자신을 데려 오라'는 뜻일 경우)
편집 나는 C 윈도우를 어떻게 든 앞으로 가져 오는 부분을 제외하고는 모든 것이 끝났습니다. 나는 현재 C 앱에 메시지를 보내고 같은 C# 응용 프로그램 아래에서 같은 창 (.exe)의 다른 모든 창 앞에 새 창을 엽니 다.
나는
[DllImport("user32.dll")]
static extern bool AllowSetForegroundWindow(ServerWindowHandle);
를 사용하여 시도하지만 그것으로 운이 없었습니다. 어떻게 든 내 C 앱에 .net 앱의 "소유권"이 있어야 할 필요가 있습니까? C# 응용 프로그램은 programinvoke를 통해 시작됩니다.
제목을 편집했습니다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야합니다"로 표시되어야합니다. –
꽤 명확하지 않습니다. 누가 SetForegroundWindow를 호출하고 있습니까? –
잘하면 설명해 줄 편집을 추가했습니다. – greggorob64