IEで表示しているアドレス(URL)文字列を取得するには?

解決


T2  2004-11-23 06:01:33  No: 11872

IEが複数起動しているとき、現在アクティブになっているIEで表示しているURLの取得方法を教えてください。
DdeClientConv を使用すると、最後に開いたIEのURLしか取得できませんでした。
よろしくお願いします。


R2D2  2004-11-23 21:13:53  No: 11873

ふぁんくしょん IEのURLやで: string;
var
  szName: array[0..255]of Char;
  hw: HWND;
begin
  result := '';
  hw := GetForegroundWindow;
  if hw = 0 then exit;
  GetClassName(hw, szName, 255);
  if szName <> 'IEFrame' then exit;
  while szName <> 'ComboBoxEx32' do begin
    hw := GetWindow(hw, GW_CHILD);
    if hw = 0 then exit;
    GetClassName(hw, szName, 255);
  end;
  SendMessage(hw, WM_GETTEXT, 255, lParam(@szName));
  result := szName;
end;


T2  2004-11-25 10:49:38  No: 11874

R2D2さん、ありがとうございました。

ToolbarWindow32 のクラスを先に見つけて、CHILDがなく
exitしてしまうので、以下のようにしました。

GetIEURL: string;
var
  szName: array[0..255]of Char;
  hw: HWND;
begin
  result := '';
  hw := GetForegroundWindow;
  if hw = 0 then exit;
  GetClassName(hw, szName, 255);
  if szName <> 'IEFrame' then exit;
  while szName <> 'ToolbarWindow32' do begin
    hw := GetWindow(hw, GW_CHILD);
    if hw = 0 then exit;
    GetClassName(hw, szName, 255);
  end;
  hw := GetWindow(hw, GW_HWNDNEXT);
  SendMessage(hw, WM_GETTEXT, 255, lParam(@szName));
  result := szName;
end;


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加