Delphi(この場合はDelphi 7)を使用して、PID(プロセスID)からウィンドウタイトルを取得する方法を教えてください。PID(プロセスID)のみを持っている場合はウィンドウタイトルを取得
"Internet Explorer/Chrome"ウィンドウタイトルを取得しようとしています。これまで
マイコード:
procedure GetAllBrowserTitle;
var
hProcSnap : THandle;
pe32 : TProcessEntry32;
P : string;
PID : integer;
ContinueLoop : BOOL;
begin
try
hProcSnap := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if hProcSnap = INVALID_HANDLE_VALUE then exit;
pe32.dwSize := SizeOf(pe32);
ContinueLoop := Process32First(hProcSnap, pe32);
While (Integer(ContinueLoop) <> 0) do
begin
P := LowerCase(pe32.szExeFile);
if (Pos('iexplore.exe', P) > 0) Or (Pos('chrome.exe', P) > 0) then
begin
PID := pe32.th32ProcessID;
// Get the Window Title
// ???
end;
ContinueLoop := Process32Next(hProcSnap, pe32);
end;
CloseHandle(hProcSnap);
except
end;
end;
一部私は知らないウィンドウタイトルを取得することです。私の研究から、すべての例では、Window HandleまたはEnumWindowコールバックを使用する必要があります。
お手数ですが、
ありがとうございました。
クロムには、潜在的に多くのプロセスがあります。プロセスによっては、ウィンドウを所有しているものもあります。プロセスによっては、多くのウィンドウがあります。 Chromeはブラウザタブごとに異なるプロセスを使用します。 EnumWindowを理解できないかもしれませんが、問題を解決するための適切な関数であれば、その使用法を学ぶ必要があります。コーディングを続ける前に、何をやっているのかを理解し、問題を理解する必要があります。正しく述べられていない問題を解決しようとすることは何の意味もありません。 –
"...所有していないウィンドウ..." :-) –
"EnumWindowのコールバックは私が理解できません" - EnumWindowsを使用したDelphiの例についてはgoogle ... - –