运行 application.Run() 之后的下一行

Run Next line after application.Run()

我的要求是在用户打开 chrome 中的特定 URL 时按下按键。 为此,我首先检查 URL 在 chrome 中打开,然后我使用下面的代码

设置挂钩
    _hookID = SetHook(_proc);
    Application.Run();
    UnhookWindowsHookEx(_hookID);

它正在获取 URL 上的密钥,但之后如果我关闭 URL 它会不断获取密钥,这就是我不想要的。 这是因为我正在调用 application.run()。如何运行 application.run() 之后的代码?我认为这将是解决方案

Aplication.Run 的调用在启动 Windows 消息循环时被阻塞。一旦主 window 关闭,该调用将 return and/or 正在接收将结束 windows 程序的消息之一(例如 WM_QUIT)并且由消息循环处理

如果您想在调用 运行 方法后 运行 编写代码,一种选择是在 Application.Idle 事件

上注册一个处理程序
_hookID = SetHook(_proc);
Application.Idle += (s,e) => { UnhookWindowsHookEx(_hookID);};
Application.Run();

在我的测试中,一旦 Run 方法被调用,主消息循环就不会处理其他消息,引发了 Idle 事件。

或者优雅地退出您的 windows 循环,例如将 WM_QUIT 发布到其顶部 window.