2014-07-07 3 views
0

FindWindow를 사용하여 제목에 대한 핸들을 얻을 수 있지만 창이 최소화 된 경우 창 핸들을 가져올 수 없습니다. 핸들을 최소화 된 창에 어떻게 가져 옵니까?최소화 된 창 핸들 가져 오기?

hWindow := FindWindow(nil, iWindowTitle); 

답변

4

FindWindow 창이 최소화되어 있는지 여부는 신경 쓰지 않아도됩니다. FindWindow에 대한 호출이 0을 반환하면 해당 제목이있는 최상위 창이 없음을 의미합니다.

이 경우를 입증하려면 메모장의 인스턴스를 열고 최소화하십시오. 그런 다음이 프로그램을 실행 :

{$APPTYPE CONSOLE} 

uses 
    Windows; 

begin 
    Writeln(FindWindow(nil, 'Untitled - Notepad')); 
    Readln; 
end. 

분명히 어떤 일어나고있는 것은 당신이 사냥 윈도우가 최소화 될 때, 그것은 당신이 생각했던 제목이없는 것입니다. 이 문제를 디버그하려면 Spy ++와 같은 도구를 사용해야 할 것입니다.

+0

네, 맞습니다. 내가 내 질문을 게시 한 이후에 진짜 문제가 발견되었다. 윈도우의 비트 맵을 캡처하려는 나의 시도는 창 핸들이 없어서 최소화되지 않았기 때문에 실패했다. 그 핸들로 창을 복구 할 수 있습니까, 내 화면 캡처 코드 기능 또는 다른 질문으로 게시해야합니까? – Bill

+0

'SW_RESTORE'를 전달하는'ShowWindow'를 호출하십시오. 애니메이션을 피하려면이 질문을보십시오. http://stackoverflow.com/questions/6078799/minimize-restore-windows-programmatically-skipping-the-animation-effect –

+0

@David ... 감사 ... 내 창을 최소화해도 화면 캡처가 작동합니다 ... – Bill