【问题标题】:Get the handle of a minimized window?获取最小化窗口的句柄?
【发布时间】:2014-07-07 20:23:30
【问题描述】:

我可以使用 FindWindow 按标题获取窗口句柄,但如果窗口最小化,我无法获取窗口句柄。如何获得最小化窗口的句柄?

hWindow := FindWindow(nil, iWindowTitle);

【问题讨论】:

    标签: delphi delphi-xe4


    【解决方案1】:

    FindWindow 不关心窗口是否最小化。如果您对FindWindow 的调用返回零,则意味着没有具有该标题的顶级窗口。

    为了证明是这种情况,请打开记事本实例并将其最小化。然后运行这个程序:

    {$APPTYPE CONSOLE}
    
    uses
      Windows;
    
    begin
      Writeln(FindWindow(nil, 'Untitled - Notepad'));
      Readln;
    end.
    

    很明显,当您正在寻找的窗口被最小化时,它没有您认为的标题。您可能需要使用像 Spy++ 这样的工具来调试它。

    【讨论】:

    • 是的,你是对的。自从我发布我的问题后,我发现真正的问题是我尝试捕获窗口的位图失败了,因为窗口被最小化不是因为没有窗口句柄。你能通过它的句柄恢复一个窗口吗,我的屏幕截图代码功能还是我应该把它作为一个不同的问题发布。
    • 致电ShowWindow 传递SW_RESTORE。如果您想避免动画,请参阅此问题:stackoverflow.com/questions/6078799/…
    • @David...谢谢...即使窗口已最小化,我的屏幕截图现在仍在工作...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    • 2011-02-26
    • 1970-01-01
    • 2014-01-28
    • 1970-01-01
    • 2011-05-22
    相关资源
    最近更新 更多