【发布时间】:2014-07-07 20:23:30
【问题描述】:
我可以使用 FindWindow 按标题获取窗口句柄,但如果窗口最小化,我无法获取窗口句柄。如何获得最小化窗口的句柄?
hWindow := FindWindow(nil, iWindowTitle);
【问题讨论】:
标签: delphi delphi-xe4
我可以使用 FindWindow 按标题获取窗口句柄,但如果窗口最小化,我无法获取窗口句柄。如何获得最小化窗口的句柄?
hWindow := FindWindow(nil, iWindowTitle);
【问题讨论】:
标签: delphi delphi-xe4
FindWindow 不关心窗口是否最小化。如果您对FindWindow 的调用返回零,则意味着没有具有该标题的顶级窗口。
为了证明是这种情况,请打开记事本实例并将其最小化。然后运行这个程序:
{$APPTYPE CONSOLE}
uses
Windows;
begin
Writeln(FindWindow(nil, 'Untitled - Notepad'));
Readln;
end.
很明显,当您正在寻找的窗口被最小化时,它没有您认为的标题。您可能需要使用像 Spy++ 这样的工具来调试它。
【讨论】:
ShowWindow 传递SW_RESTORE。如果您想避免动画,请参阅此问题:stackoverflow.com/questions/6078799/…