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='
IEFrame'
then
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;