Web-Seite über VB Shell-Befehl aufrufen

konsti22

Neues Mitglied
Hallo Leute,

zuerst einmal zu meinem Problem:

Ich will in einem Intramet eine Web-Anwendung mit einem Parameter starten, der für die User nicht sichtbar sein soll.
Zu diesem Zwech will ich mich des folgenden Codes bedienen:

QUOTE
Module Module1

Sub Main()
Dim f = FreeFile()
Dim u = Environ("[USERNAME]")
Dim ident = Environ("[ID]")
Dim t = Environ("TMP")
Dim fname = t + "\[Web_Anwendung]" + u + ".htm"
FileOpen(f, fname, OpenMode.Output)
Print(f, "<html>")
Print(f, "<body onload='f.submit();'>")
Print(f, "<form id=f method=post action=http://localhost/[webPath]/[Web_Anwendung].htm?ident1=" + ident + ">")
Print(f, "</form>")
Print(f, "</body>")
Print(f, "</html>")
FileClose(f)
Shell("C:\Programme\Internet Explorer\iexplore.exe " + fname)
End Sub

End Module



Alles funktioniert soweit bis auf de Aufruf des IE über den Shell-Befehl. Da bekomme ich einen leeres Internet-Explorer-Fenster und nich meine Web-Anwendung.

Hat jemand von Euch eine Idee was ich falsch mache?

Ich bin für jede Anregung dankbar.
 
Oha, security by obscurity?

Das wird so nicht funktionieren, iexplore.exe akzeptiert eine URL als Parameter, keinen HTML-CODE wie in deinem Fall.

Angesehen davon finde ich das ganze einen sehr schlechten Lösungsansatz. Wieso wird das nicht Serverseitig gelöst, Stichwort AUTH_USER?

Edit:
Habe übersehen dass du ja den Code lokal abspeicherst. Die Datei wird korrekt erstellt? Kannst du diese manuell öffnen?
 
Hallo Alonso,

ich danke Dir für Deine Antwort.

Zur Programmierung:
Ich musste meine Web-Anwendung (wie so oft) unter extremsten Zeitdruck abliefern, da blieb mir leider nur der Obscurity-Ansatz übrig. Darüber hinaus ist in den Gruppenprofilen alles deaktiviert, was den Quelltext sicht- und editierbar machen könnte, incl. des IE-Kontextmenüs. Zudem habe ich nicht die Netzwerk-Herrschaft, so dass ich auf lokale Umgebungsvariable zu identifizierung der Dienststelle angewiesen bin; davon haben wir übrigens 15.
Früher hatten wir für jede Dienststelle eine eigne Netzwerkadresse innerhalb dieser über DHCP die maximal 2-stelligen IP-Oktets bezogen worden ist. Da war die Dienststellenauflösung über die Server-Variablen des IIS ein Selbstgänger.

Vor wenigen Wochen hat unsere Systemverwaltung weiter zentralisiert und ein Riesennetzwerk aufgebaut. Die Dienststelle ist jetzt nicht mehr wie über die Netzwerkadresse aufschlüsselbar.

Aber sie wird über Umgebungsvariablen erkennbar.

Zu dem IE:

Wir verwenden flächendeckend die Version 8, und die hat, soviel ich weiß, die Möglichkeit eine URL als Kommandozeilen-Parameter mitzugeben.
Guckst Du hier:
http://www.giza-blog.de/InternetExplorer8I...nparameter.aspx

Zur Codeabspeicherung:
Lokal speichere ich den Code nur für mich zu Testzwecken ab. Die User ansonsten haben überhaupt keine lokalen Laufwerke mehr, sondern ziehen alles auf/von zentralisierten Datenservern ruf/runter. Der Pfad zum Temporären User-Verzeichnis liegt dabei, wie bei nahezu jedem Windows-System, in der lokalen Umgebungsvariable TMP.
Was den Zugriff auf die durch das Script erstellte Datei angeht, der funktioniert prinzipiell durch den IE.
Wenn ich in der Registry unter "HKEY_CLASSES_ROOT/.HTM/" den Eintrag "Content Type=HTML/Text" entferne dann sehe ich den Quelltext der erstellten Datei, und in der URL-Zeile steht auch die von mir eingegebne Datei mit kompletten Pfad.

EDIT:
Sorry für die Fehldeutung Deines letzten Absatzes......hatte heute einen anstrengenden Tag.
 
Kann es sein dass der IE aus Sicherheitsgründen bei lokalen Files keine Scripts ausführt und desshalb das f.submit() nicht durchgeführt wird? Hau doch mal ein paar sichtbare Zeichen in das HTML rein? Ist ja ev. gar keine weisse Seite, sondern nur dein unübermitteltes Formular?
 
Hi Alonso,

danke für den Tipp.

Es handelt sich bei dem Gerät auf dem ich das Problem habe momentan noch um mein Entwicklungsrechner, der zwar im Grunde wie die Userrechner konfiguriert ist, aber auf dem keine Sicherheitsbeschränkungen installiert sind.
Die anderen HTML- und ASP-Seiten, die ich erstellt habe funktionieren ja alle, und die zeigen jede Menge an.

Allerdings, jetzt wo Du es erwähnst, ich habe neulich bei einem Test mit einer Javascript-Funktion die ich aus Vbscript heraus aufrufen wollte die Fehlermeldung erhalten habe "[funktionsname] unbekannte Variable".

Ich weiß nicht woran es liegt, habe es erst mal zugunsten der Lösung anderer Probleme beiseite geschoben, da meine eigentliche Anwendung bisher komplett ohne Javascript auskommen, und nur mit HTML, Vbscript und ASP aufgebaut sind.
Aber es stimmt schon...Submit() ist eine Javascript-Funktion, und Dein Tipp hat somit eine Relevanz.
Nur, die Ursache dafür zu finden warum Cbscript kein Javascript aufrufen kann ist mir noch nicht gelungen, zumal Javascript in den ie-Optionen nicht deaktiviert ist.
 
Zurück
Oben