2012-12-06 93 views
1

我正在開發一個包含在桌面(Windows)中運行的程序的系統。如何從桌面應用程序關閉瀏覽器的當前選項卡?

每分鐘的檢測,如果當前程序是一個瀏覽器,在這種情況下,檢查活動標籤的URL是「黑名單」

在這種情況下,我想關閉的當前標籤頁瀏覽器。我現在正在做的是殺死瀏覽器進程,這意味着URL不在黑名單中的標籤也被關閉了。

爲了檢測活動標籤的URL,I'm使用該溶液從用Delphi 7 How to get the url from Chrome using delphi

I'm,但在任何語言中的解決方案將被理解的。

+5

這不取決於瀏覽器嗎? –

+6

這聽起來像一個可怕的程序。當然,你想使用代理? –

+0

我明白你想達到的目標,但我認爲這不是一個好辦法。 –

回答

0

使用以下過程:

  • 開始錄製宏
  • 打開瀏覽器
  • 按鍵盤快捷鍵來關閉標籤
  • 停止錄製宏
  • 創建一個快捷方式宏
0

我正在使用這個m ethodology關閉瀏覽器選項卡。如您所知,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; 
相關問題