"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > .NET에 주어진 프로세스 ID와 관련된 모든 창을 나열하는 방법은 무엇입니까?

.NET에 주어진 프로세스 ID와 관련된 모든 창을 나열하는 방법은 무엇입니까?

2025-01-29에 게시
검색:765

How to List All Windows Associated with a Given Process ID in .NET?

솔루션

는 .NET에서이를 달성하기 위해 열거 된 Windows와 GetProcessById 기능의 조합으로이를 달성합니다. 고용됩니다. 다음 코드 스 니펫은이 솔루션을 구현하는 방법을 보여줍니다. [dllimport ( "user32.dll")] 정적 외부 bool enumthreadwindows (int dwthreadid, enumthreaddelegate lpfn, intptr lparam); 정적 iEenumerable 열거 프로세스 와인도 핸들 (int processID) { var handles = 새 목록 (); foreach (processthread stread in process.getProcessById (processID) .threads) enumthreadwindows (thread.id, (hwnd, lparam) = & gt; {handles.add (hwnd); 진실을 반환하십시오. }, intptr.zero); 반환 핸들; }

사용 예

제공된 코드는 Windows 탐색기 프로세스와 관련된 모든 Windows를 열거하는 방법을 보여줍니다. [dllimport ( "user32.dll", charset = charset.auto)] 정적 extern intptr sendmessage (intptr hwnd, uint msg, int wparam, StringBuilder lparam); [Stathread] 정적 무효 메인 (String [] args) { foreach (열거적 인 프로세스 윈도 핸들의 var 핸들 ( process.getProcessesByName ( "탐색기"). First (). id)) { StringBuilder Message = New StringBuilder (1000); sendMessage (handle, wm_gettext, message.capacity, message); Console.WriteLine (메시지); } }

이 솔루션을 사용하여 특정 프로세스에 속하는 모든 Windows를 효과적으로 열거하여 응용 프로그램의 사용자 인터페이스에 대한 귀중한 통찰력을 제공 할 수 있습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3