WshShell.AppActivate scheint in einem einfachen vbs-Skript nicht zu funktionieren

8

Gesamt VBS Scripting Newb hier. Ich versuche zu automatisieren, ein bestimmtes offenes Fenster zu schließen, nämlich ein Programm namens HostSMan. Dies ist unter Windows 8.1 Pro 64 Bit, und so sieht mein Skript derzeit aus:

%Vor%

Die zweite Zeile scheint nicht zu funktionieren. Ich weiß, Zeile 3 funktioniert, weil es das Windows-Herunterfahren-Menü aktiviert. Gibt es etwas, das mir fehlt?

Update / mehr Info: Manuell Alt-F4 eingeben schließt es, so dass ich weiß, dass dies funktionieren sollte. Ich habe dieses Skript auch mit anderen geöffneten Fenstern getestet und sie schließen gut. Außerdem wird HostsMan mit Admin-Rechten geöffnet, also habe ich versucht, das Skript als einen Task-Set mit höchsten Rechten auszuführen, um zu sehen, ob es das tut, und immer noch nicht. Aber das funktioniert mit anderen offenen Fenstern, die mit Admin-Rechten ausgeführt werden. Frustrierend!

    
user3550756 19.04.2014, 03:13
quelle

3 Antworten

10

Ich habe es auch versucht und konnte es nicht zur Arbeit bringen. Es muss etwas an der Fensterklasse sein, vielleicht, wo AppActivate es nicht als ein Fenster der obersten Ebene sieht?

Auf jeden Fall können Sie in AppActivate auch die Prozess-ID anstelle des Fenstertitels übergeben. Als ich HostsMan installiert habe, war der Prozessname hm.exe , also werde ich das in meinem Beispiel unten verwenden.

%Vor%     
Bond 20.04.2014, 16:13
quelle
1

Der Schlüssel hier ist, nach dem Befehl 'run', aber vor dem Befehl 'appactivate' eine kleine Pause zu setzen, damit die Anwendung in der Prozessliste erscheint.

%Vor%     
Jim 21.09.2016 16:54
quelle
0

Alternative Lösung mit WMIService (keine Schleife durch alle Prozesse erforderlich):

%Vor%     
Thierry Dalon 04.08.2016 06:33
quelle

Tags und Links