【问题标题】:How to close Chrome window from the other application?如何从其他应用程序关闭 Chrome 窗口?
【发布时间】:2014-08-15 08:35:39
【问题描述】:

在我的应用中,我需要在安装过程中关闭 chrome。

我发现了 chrome 的唯一名称: Chrome_WidgetWin_0 Chrome_WidgetWin_1 Chrome_OmniboxView Chrome_AutocompleteEditView

 winHwnd := FindWindowByClassName('Chrome_WidgetWin_0');
if winHwnd <> 0 then
  retVal:=postmessage(winHwnd,16,0,0);//16 means WM_CLOSE
winHwnd := FindWindowByClassName('Chrome_WidgetWin_1');
if winHwnd <> 0 then
  retVal:=postmessage(winHwnd,16,0,0);
winHwnd := FindWindowByClassName('Chrome_OmniboxView');
if winHwnd <> 0 then
  retVal:=postmessage(winHwnd,16,0,0);
winHwnd := FindWindowByClassName('Chrome_AutocompleteEditView');
if winHwnd <> 0 then
  retVal:=postmessage(winHwnd,16,0,0);

但有时 id 不会关闭。特别是在最小化时。 但是,postmessage 返回 true。 有没有办法关闭 Chrome? 例如,有没有办法检查 Chrome 是否真的被用户关闭?

【问题讨论】:

    标签: windows google-chrome winapi inno-setup delphi


    【解决方案1】:

    您可以枚举所有正在运行的进程,并杀死所有“chrome.exe”。是不是太粗鲁了?
    如果可以接受,请检查以下文件:
    http://msdn.microsoft.com/en-us/library/windows/desktop/ms682623(v=vs.85).aspx
    http://msdn.microsoft.com/en-us/library/windows/desktop/ms686714(v=vs.85).aspx

    【讨论】:

    • 可以接受。 :) 谢谢,我会检查这个
    • 翻译起来很容易。函数调用是一样的。
    • 永远不要在没有很多警告的情况下“直接杀死”进程。通常,应用程序不能或不会在不询问用户的情况下干净地关闭。它还可能导致数据丢失或损坏。
    • 是的,我知道。但该应用程序有时无法识别“温和的”关闭请求。所以我检查数据库和文件操作是否完成并停止 Chrome。 @Fuqiang_Jiang 使用了其他方式,因为我使用的是 delphi。但主要做法是一样的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    • 2023-03-09
    相关资源
    最近更新 更多