Forum: PC-Programmierung Internet Explorer: 2. Fenster wird nicht erkannt


von Mehmet K. (mkmk)


Lesenswert?

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!

von Klaus (Gast)


Lesenswert?

hmmmm...

Kligt für mich irgendwie nach nem vermurksten Konzept...

von Mehmet K. (mkmk)


Lesenswert?

In der Zwischenzeit habe ich herausgefunden, dass dieses Verhalten im 
direkten Zusammenhang mit UAC steht. Wenn ich diesen abschalte, 
funktioniert alles wie es soll. Eine Nachfrage bei den problematischen 
Kunden ergab, dass sie Vista benutzen, und der eine Kunde nach der 
Neuinstallation UAC abgeschaltet hatte.

Also mein Problem besteht nur bei Vista und Win 7. Und wenn ich Control 
Panel -> User Accounts -> Change User Account Control settings 
abschalte, funktioniert alles wie es soll.

von Mehmet K. (mkmk)


Lesenswert?

Ich habe das Problem so gelöst, dass ich in der Registry den Wert
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Sy 
stem\EnableLUA
kurz auf 0 setze, die Aufgabe erledige und dann gleich diesen Wert 
wieder auf 1 setze.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Mehmet Kendi schrieb:
> Ich habe das Problem so gelöst, dass ich in der Registry den Wert

Wie sagte Klaus doch gleich...

Klaus schrieb:
> Kligt für mich irgendwie nach nem vermurksten Konzept...

Mehmet Kendi schrieb:
> Weil die Webseite den direkten Aufruf von entyr.html nicht erlaubt
Der JS Aufruft macht doch auch einen "direkten" Aufruf... Ich versteh 
nicht ganz warum das nicht funktionieren soll.

von Klaus (Gast)


Lesenswert?

Und da schlägt nicht der Virenscanner Alarm, wenn da ein Programm daher 
kommt, und einfach mal direkt in der Registry die UAC abschaltet?

von Mehmet K. (mkmk)


Lesenswert?

> Wie sagte Klaus doch gleich...
>> Kligt für mich irgendwie nach nem vermurksten Konzept...

Richtig. Aber die Web Applikation ist nicht mein Werk. Ich muss nur von 
aussen darauf zugreifen und eine Automatisierung sicherstellen. 
Andernfalls muss der User jede Woche ca. 1000 - 2000 Dateien manuell 
runterladen und im richtigen Ordner mit dem richtigen Namen abspeichern.
Ist nicht ein Zuckerschlecken.
Mit meinem Programm geht das innerhalb von Minuten.

Und um es gleich vorwegzunehmen: Download-Programme gehen nicht, da die 
Web-Seite recht kompliziert aufgebaut ist und man das, was man 
downloaden will, sich erst zusammenklicken und mit Wertangaben filtern 
muss (was in diesem Fall auch von meinem Programm erledigt wird).

von Mehmet K. (mkmk)


Lesenswert?

Klaus schrieb:
> Und da schlägt nicht der Virenscanner Alarm, wenn da ein Programm daher
> kommt, und einfach mal direkt in der Registry die UAC abschaltet?

Es erscheint nur kurz ein Hinweis unten in der Taskbar, dass man einen 
Restart vornehmen solle. Und verschwindet gleich wieder. Ein Restart ist 
aber nicht notwendig.

von Klaus (Gast)


Lesenswert?

Naja, gut dass es erstmal funktioniert.

Aber ich sehe da die Gefahr, dass irgendwann ein Windows Update oder 
Virenscanner Update da zwischen funkt.

von Mehmet K. (mkmk)


Lesenswert?

Wir sind mit diesem Programm noch neu auf dem Markt. Weshalb wir es uns 
nicht erlauben können waehlerisch zu sein.
Aber die Reaktion der Benutzer ist dermassen positif, dass diese in 
Zukunft, sollten Deine Befürchtungen eintreffen, ohne zu murren unsere 
"System requirements" akzeptieren würden.
Aber bis dahin .....

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.