VBScript-setzen Sie den Fokus auf ein Fenster im IE
Ich bin der Aktualisierung ein altes Stück code mit VBScript, nach oben ziehen ein Fenster im IE. Für einige Grund, es mag zu öffnen, hinter IE. Google gab mir die folgenden paar Zeilen für die Einstellung der Fenster den Fokus, die in VBScript:
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate("calculator")
Jedoch, wenn ich diese im IE, ich bekomme die Fehlermeldung "Objekt erforderlich: 'WScript'."
Gibt es eine Möglichkeit, um dieses im IE oder einen anderen Weg, dies zu tun? Ich bin schon öffnen und Bearbeiten Sie ein Word-Dokument, ohne jedes problem.
Edit: um Zu klären, ich bin mit dieser in einem <script type="text/vbscript"> - tag im browser (IE), und der code ist Absturz auf die erste Zeile, bevor ich sogar call AppActivate.
Update: Meine Sicherheitseinstellungen sind ziemlich niedrig; alle ActiveX-Einstellungen auf Aktivieren (dies ist ein intranet-service). Getestet habe ich den code aus diese Frage, und der Rechner geöffnet, ohne Frage. In der Tat, ich habe AppActivate arbeiten mit JavaScript, aber es funktioniert nicht mit VBScript.
Arbeiten JavaScript:
<script type="text/javascript">
function calcToFrontJ(){
wshShell = new ActiveXObject("WScript.Shell");
wshShell.AppActivate("Calculator");
}
</script>
Nicht Arbeiten VBScript:
<script type="text/vbscript">
Public Function calcToFrontV()
'Set WScript = CreateObject("WScript.Shell") 'breaks with or without this line
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate("Calculator")
End Function
</script>
Ich denke, ich kann immer umgestalten zu JavaScript, aber ich würde wirklich gerne wissen, was ist Los mit diesem VBScript.
Letzte Antwort:
<script type="text/vbscript">
Public Function calcToFrontV()
'must not use WScript when running within IE
Set WshShell = CreateObject("WScript.Shell")
WshShell.AppActivate("Calculator")
End Function
</script>
Was ich meine ist, dass der code in einer
<script type="text/vbscript">
tag und wird im browser ausgeführt. Ich rief eigentlich AppActivate mit "WINWORD" (Prozess-name), aber der code ist Absturz auf die erste Zeile, wo ich versuche zu machen, das WshShell-Objekt.WScript ist nur verfügbar, wenn Sie das Skript ausführen, mithilfe von Windows Scripting Host (mit wscript.exe oder cscript.exe). Auch gibt es Sicherheitsbeschränkungen, die verhindern, dass Sie Zugriff auf einen WScript.Shell-Objekt in eine web-Seite, weil das Objekt nicht als sicher für scripting markiert. Es wäre sehr gefährlich, wenn Skripte, die auf web-Seiten nutzen könnte. Siehe stackoverflow.com/questions/1363095/...
Danke für die info. Ich bin in der Programmierung für ein intranet, und es sieht aus wie die Standard-Einstellungen sind ziemlich lax. Diese Frage meint Ihr, ich soll aktivieren Sie alle ActiveX-Zeug, und alle diese Einstellungen sind bereits aktiviert.
InformationsquelleAutor jtpereyda | 2011-05-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das WScript-Objekt nicht vorhanden im IE, es sei denn, Sie schaffen es selbst mit:
Set WScript = CreateObject("WScript.Shell")
Aber es wird nicht funktionieren, wenn die Sicherheitseinstellungen nicht auf einem Recht niedrigen Niveau.
Edit: Factoring in Tmdean Kommentar, dies ist der Arbeits-code:
Kennen Sie die genauen Sicherheits-Einstellung in Frage? Meine Einstellungen sind ziemlich niedrig (fast alles aktiviert ist unter Sicherheits-Einstellungen). Siehe Kommentar auf die Frage.
Ich denke, Sie sind immer noch mit WScript.CreateObject("WScript.Shell"). Sollten Sie nur mit CreateObject("WScript.Shell")
InformationsquelleAutor Luc125
Sah ich für acouple Stunden auf dem Netz heute und zusammengekratzt diesem code. Es funktioniert tatsächlich :D.
Ich habe akzeptiert diese Antwort, persönlich. Es ist die sichere Antwort, die ich finden konnte. +1 🙂
InformationsquelleAutor Tom
Der trick besteht darin, mit
WScript.CreateObject()
lieber als nurCreateObject()
zu erstellen IE-Objekt.P. S. ich habe die Lösung von Dan Bernhardt bei https://groups.google.com/forum/#!msg/microsoft.öffentlichkeit.scripting.vbscript/SKWhisXB4wY/U8cwS3lflXAJ
InformationsquelleAutor Tony