mikrocontroller.net

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


Autor: Mehmet Kendi (mkmk)
Datum:

Bewertung
0 lesenswert
nicht 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
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!

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmmmm...

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

Autor: Mehmet Kendi (mkmk)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Mehmet Kendi (mkmk)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Mehmet Kendi (mkmk)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Mehmet Kendi (mkmk)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, gut dass es erstmal funktioniert.

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

Autor: Mehmet Kendi (mkmk)
Datum:

Bewertung
0 lesenswert
nicht 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 .....

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.