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