c# - 예제 - user32 dll 함수




Win32 API를 사용하여 C#에서 윈도우 가져 오기 (4)

필자는 외부 앱의 창을 포어 그라운드로 가져와야하고 포커스를 훔칠 필요가없는 애플리케이션을 작성 중입니다 (사용자가 포커스를 훔치거나 훔치기 위해 전환 할 수있는 설정이 있음).

win32 API를 사용하여이 문제를 해결하는 가장 좋은 방법은 무엇입니까? SetForeground () 시도했지만 포커스를 훔치는 및 consistenly 작동하지 않습니다.

이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 이견있는 사람?


SetForeGroundWindow, SetActiveWindow 및 BringWindowToTop의 차이점은 무엇입니까? 마치 모두 똑같은 것처럼 보입니다.

MSDN에 따르면 SetForeGroundWindow는 창을 활성화하고 키보드 포커스를 직접 활성화합니다. 이것은 프로세스가 백그라운드에서 작동 할 때에도 시도합니다. SetActiveWindow는 SetForeGroundWindow와 동일한 작업을 수행하지만 응용 프로그램이 맨 앞에있는 응용 프로그램이 아닌 경우에는 아무 작업도 수행하지 않습니다. 마지막으로 BringWindowToTop은 창을 맨 위로 가져오고 키보드 포커스를 변경하지 않습니다.


FindWindow를 사용하여 윈도우의 HWND를 가져온 다음 Win32 API에있는 BringWindowToTop 함수를 사용할 수 있습니다.


SetWindowPos + SWP_NOACTIVATE가 작업을 수행합니다.






winapi