1

我正在开发一个包含在桌面(Windows)中运行的程序的系统。

每分钟检测活动程序是否是浏览器,在这种情况下检查活动选项卡的 url 是否在“黑名单”中

在这种情况下,我想关闭浏览器的当前选项卡。我现在正在做的是杀死浏览器进程,这意味着带有不在黑名单中的 url 的选项卡也被关闭了。

为了检测活动选项卡的 url,我正在使用How to get the url from Chrome using delphi中的解决方案

我正在使用 Delphi 7,但任何语言的解决方案都将不胜感激。

4

2 回答 2

1

我正在使用这种方法来关闭浏览器选项卡。如您所知,Chrome 和 Iexplorer 对每个选项卡使用不同的进程。我找到进程名称并杀死它们。在下面的代码中,为 chrome 或 iexplore 或任何你想要的东西杀死内存中的所有进程。不要忘记在您的使用行中添加 winapi.tlhelp32 单元。

function KillTask(ExeFileName: string): Integer;
const
  PROCESS_TERMINATE = $0001;
var
  ContinueLoop: BOOL;
  FSnapshotHandle: THandle;
  FProcessEntry32: TProcessEntry32;
begin
  Result := 0;
  FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
  ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
  // find all process and kill them all one by one    
  while Integer(ContinueLoop) <> 0 do
  begin
    if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
      UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
      UpperCase(ExeFileName))) then
      Result := Integer(TerminateProcess(
                        OpenProcess(PROCESS_TERMINATE,
                                    BOOL(0),
                                    FProcessEntry32.th32ProcessID),
                                    0));
     ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
  end;
  CloseHandle(FSnapshotHandle);
end;
于 2017-01-30T11:03:59.857 回答
0

使用以下过程:

  • 开始录制宏
  • 打开浏览器
  • 按键盘快捷键关闭选项卡
  • 停止录制宏
  • 创建宏的快捷方式
于 2013-12-05T20:31:42.893 回答