獲取活動窗口使用的標題下面的代碼:
HWND hwnd = GetForegroundWindow();
CString title;
LPTSTR str = title.GetBufferSetLength(GetWindowTextLength(hwnd));
GetWindowText(hwnd, str, title.GetLength() + 1);
if (title.IsEmpty())title = _T("User Desktop");
...
活動窗口將是「標題」下。
獲取活動運行的應用程序使用此代碼:
DWORD pid;
GetWindowThreadProcessId(GetForegroundWindow(), &pid);
HANDLE hProcess = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, FALSE, pid);
if (hProcess != NULL)
{
TCHAR path[MAX_PATH] = { 0 };
TCHAR filename[MAX_PATH] = { 0 };
GetProcessImageFileName(hProcess, path, MAX_PATH);
_wsplitpath(path, NULL, NULL, filename, NULL);
CloseHandle(hProcess);
...
文件名將保持活動的應用程序
我懷疑有一個真正的答案。用戶可能安裝了多個Web瀏覽器,因此基於窗口的搜索可能會失敗。單個網頁可能(通常會)具有來自多個服務器的部分,因此跟蹤URL或IP地址也可能失敗。 –
那麼有這樣的程序,所以我只是想知道它是如何可能的。有沒有辦法訪問你從taskmgr看到的正在運行的應用程序列表?如果是這樣,您可以搜索,因爲如果它是瀏覽器,它會在應用程序名稱中顯示瀏覽器名稱,例如:「Google - Mozilla」或「Google - Chrome」。 – JimmySmithJR
我相信Windows任務管理器中顯示的應用程序使用'EnumWindows'來枚舉頂層窗口。如果找到半打(如此)的主瀏覽器的實例就足夠了,那可能會工作得很好。 –