我正在开发一个包含在桌面(Windows)中运行的程序的系统。
每分钟检测活动程序是否是浏览器,在这种情况下检查活动选项卡的 url 是否在“黑名单”中
在这种情况下,我想关闭浏览器的当前选项卡。我现在正在做的是杀死浏览器进程,这意味着带有不在黑名单中的 url 的选项卡也被关闭了。
为了检测活动选项卡的 url,我正在使用How to get the url from Chrome using delphi中的解决方案
我正在使用 Delphi 7,但任何语言的解决方案都将不胜感激。
我正在开发一个包含在桌面(Windows)中运行的程序的系统。
每分钟检测活动程序是否是浏览器,在这种情况下检查活动选项卡的 url 是否在“黑名单”中
在这种情况下,我想关闭浏览器的当前选项卡。我现在正在做的是杀死浏览器进程,这意味着带有不在黑名单中的 url 的选项卡也被关闭了。
为了检测活动选项卡的 url,我正在使用How to get the url from Chrome using delphi中的解决方案
我正在使用 Delphi 7,但任何语言的解决方案都将不胜感激。
我正在使用这种方法来关闭浏览器选项卡。如您所知,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;
使用以下过程: