Einzelnen Beitrag anzeigen

delphilevi

Registriert seit: 10. Jan 2006
Ort: Bad Bramstedt
11 Beiträge
 
#1

URL an IE senden der mittels shellexecute erzeugt wurde

  Alt 10. Jan 2006, 15:45
Moin,

ich benutze Delphi um eine IE-Anwendung zu starten. Leider kann die IE-Anwendung schon laufen und ich muß bestehende IE-Instanzen mit einer Logout-URL versorgen bevor ich die Anwendung starte.
Die abgewandelten sourcen aus dsdt ergeben eine Exception in der Zeile if (Pos ...

Geht das wie hier beschrieben oder ist ein api-call mit sendmessage an das ie-Handle sinnvoll - falls
ja wie sieht dieser aufruf aus ?

danke für die mühen

Delphi-Quellcode:
// ermittle ob eine ziel_url geoeffnet ist
procedure URL(const ziel_url: string);
  function EnumWindowsProc (Wnd: HWND; const liste: TStringList): BOOL; stdcall;
  var
    theClassname: array [0..128] of Char;
    //caption: Array [0..128] of Char;
    IE: IWebbrowser2;
    WndChild: HWND;
    a, b, c, d : OleVariant;
  begin
    Result := True;
    Windows.GetClassname( Wnd, theClassname, Sizeof( theclassname ));
    if theClassname='IEFramethen
    begin
      WndChild := FindWindowEX(Wnd, 0, 'Shell DocObject View', nil);
      if WndChild <> 0 then
      begin
        WndChild := FindWindowEX(WndChild, 0, 'Internet Explorer_Server', nil);
        if WndChild <> 0 then
        begin
          if GetIEFromHWND(WndChild, IE)=S_OK then begin
            if IE<>nil then begin
              if (Pos(ziel_url,IE.LocationURL)>0) then begin;
                IE.Navigate(HOST + LOGOUT + '?logout=yes',a,b,c,d);
              end;
            end;
          end;
        end;
      end;
    end;
  end;
begin
  EnumWindows(@EnumWindowsProc, integer(liste));
end;
Begrabt mein Hirn an der Biegung des Flusses
  Mit Zitat antworten Zitat