Servus allerseits
Ich verzweifle an einem seltsamen Phaenomen.
Aus einem Visual FoxPro Programm heraus starte ich den Internet Explorer
und navigiere zu einer HTTP*S*-Seite.
Weil die Webseite den direkten Aufruf von entyr.html nicht erlaubt, muss
ich in der Startseite mit
1 | EXECSCRIPT('javascript:window.open("entry.html", "", "top=80, ... usw. usf. ... ")')
|
die 2. IE-Seite triggern.
Das Programm schliesst nun die 1. IE-Seite und arbeitet mit der 2.
IE-Seite weiter.
Das Programm laeuft bei ca. 40 Kunden: XP, Vista, Win7, 32bit und 64bit.
Mein Problem ist, dass bei vereinzelten Kunden das Programm die 2.
IE-Seite nicht erkennt und es nach einer bestimmten Zeit zu einem
Timeout kommt.
Wenn ich dem Internet Explorer manuel nachhelfe, klemmt es bei der
Funktion execWB( 6 ,2): Die IE-Seite ist nicht imstande, die Seite
auszudrucken.
Wenn aber der Kunde den Rechner neu formatiert und das Betriebssystem
neu aufsetzt, funktioniert alles wie es soll.
Da diese Lösung nicht das Gelbe vom Ei ist, versuche ich eine
Alternative zu finden.
Ich habe bis jetzt 2 Lösungswege bestritten, die beide nichts
fruchteten:
1. Lösung:
Mit GetDesktopWindow, GetWindow und GetWindowText habe ich den Handle
dieser 2. Seite ermittelt.
Dann habe ich mich durch alle Items der
CREATEOBJECT("Shell.Application") durchgehechelt und die Handel
verglichen. Bei Uebereinstimmung war das Object dieser 2. Seite
ermittelnt.
2. Lösung:
Ich habe mich direkt durch alle Items der
CREATEOBJECT("Shell.Application") durchgehechelt und die Document.Title
kontrolliert. Bei Uebereinstimmung war das Object dieser 2. Seite
ermittelnt.
Wie gesagt: beide Lösungen funktionieren bei ca. 40 Kunden. Nicht aber
bei bisher 2 Kunden. Erst nach einer Neuinstallation der OS hat es
geklappt.
Meine Frage: gibt es andere Möglichkeiten, um ein IE-Fenster als Objekt
zu ermitteln?
Dank im voraus!