有谁知道有一个应用程序会根据其句柄关闭窗口?命令行很好。
请注意,我不想杀死相应的应用程序,而是该应用程序拥有的模式窗口。
理由:
有时,我的笔记本电脑的主窗口下方会打开一个模式对话框。这在 VS 和 Firefox 中不止一次发生。很烦人。
我可以用 Spy++ 定位窗口,但无法杀死它。
编辑:
允许向任意窗口发送消息的应用程序也很好,我想我可以发送诸如 WM_CLOSE 之类的东西。
编辑:
我想强调的是,我对关闭可见窗口并不感兴趣。重点是在拥有窗口下方打开模态对话框时处理丑陋的异常情况,这确实发生了,而且在我使用 VS 和 Firefox 时没有发生过一次。因此,理想的解决方案是通过其句柄关闭窗口,或者,如果它可以专门定位被遮挡的窗口并将它们显示出来。
小智 5
好的,我制作了一个可以解决问题的小应用程序。
你可以在这里下载。
用法:
它将 wm_close 发送到鼠标光标下的窗口。
德尔福代码如下...
unit uCloseWindow;
interface
uses
Windows, Forms, Messages, SysUtils, Variants, Classes, Controls;
type
TfrmMain = class(TForm)
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
public
end;
var
frmMain: TfrmMain;
implementation
{$R *.dfm}
procedure TfrmMain.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
HandleUnderCursor:HWND;
begin
if Key=VK_DELETE then
begin
HandleUnderCursor := WindowFromPoint(Mouse.CursorPos);
SendMessage(HandleUnderCursor,WM_CLOSE,0,0)
end;
end;
end.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8768 次 |
最近记录: |