vitos77
Goto Top

VB Script zum Beenden und Starten eines Programms

Hallo,

auf meinem Thinkpad läuft WIN7 Pro 64. Es ist eine Software von Lenovo installiert, die sich "Anzeige am Bildschirm" (Hotkey) nennt. Damit wird z. B. automatisch ein Laustärkebalken auf dem Display eingeblendet, wenn man die Lautstärke verstellt.

Nun ist es leider so, dass dieses Programm häufiger nicht korrekt funktioniertt und die Anzeige am Bildschirm nicht richtig dargestellt wird. Diesen Fehler haben diverse Thinkpad-Nutzer trotz neuestem installiertem Treiber - der Fehler ist also bekannt. Es hilft dann aber immer, wenn man den zuständigen Prozess über den Taskmanager beendet und das Programm dann neu startet. Der Fehler kann nicht reproduziert werden und tritt mal 2 Tage lang gar nicht auf, dann beispielsweise aber so ca. alle 3 Stunden. Es ist einfach nervig, immer diesen umständlichen Weg zu gehen, um das Programm neu zu starten.

Ich kenne mich in dieser Materie absolut nicht, kam nun aber auf die Idee, dass ein kleines Script, dass ich dann über den Aufgabenplaner in bestimmten Zeitabständen laufen lassen möchte, helfen würde. Dieses Script sollte den Prozess "TPONSCR.exe *32" (C:\Program Files\Lenovo\HOTKEY die TPONSCR.exe ) beenden und ihn gelich anschliessend wieder neu starten.

Kann mir jemand bei der Erstellung eines solchen Scripts behilflich sein? Ich habe bereits eine Möglichkeit nur zum Beenden über "taskkill" gefunden, allerdings öffnet sich dann jedes Mal beim automatischen Ausführen kurz das Consolenfenster und der Befehl "taskkill" beendet ja auch nur den Prozess und startet ihn nicht gleich wieder neu. darum wäre ein Script, dass dann ohne jegliche Meldung abläuft, sehr hilfreich...

Viele Grüße

Vitos

Content-Key: 142842

Url: https://administrator.de/contentid/142842

Printed on: April 19, 2024 at 06:04 o'clock

Member: bastla
bastla May 14, 2010 at 14:42:19 (UTC)
Goto Top
Hallo vitos77 und willkommen im Forum!

Ein entsprechendes VBScript könnte etwa so aussehen:
P = "TPONSCR.exe" 'lt Anzeige per "tasklist"  
Prog = "C:\Program Files\Lenovo\HOTKEY\TPONSCR.exe" 'Pfad zum Programm (für Neustart)  
Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")  
Set Proc = WMI.ExecQuery("Select * from Win32_Process Where Name = '" & P &"'")  
For Each P In Proc
    P.Terminate
Next
WScript.Sleep 2000 '2 Sekunden Pause  
WScript.CreateObject ("WScript.Shell").Run Prog  
Grüße
bastla
Member: vitos77
vitos77 May 14, 2010 at 15:11:14 (UTC)
Goto Top
Hallo,

zunächst vielen Dank für die Antwort. Irgendwas scheint da aber noch nicht korrekt zu funktionieren. Das Script beendet den Prozess zwar, startet ihn aber nicht neu. Nach ca. 2 Sekunden erscheint folgende Fehlermeldung:

[url=http://www.abload.de/image.php?img=zwischenablage-1ab52.jpg]

Eine idee, woran das liegen könnte?

Gruß

Vitos
Member: bastla
bastla May 14, 2010 at 15:42:32 (UTC)
Goto Top
Hallo vitos77!

Sorry - hatte nicht auf das Leerzeichen in "Program Files" geachtet face-sad ...

Ändere bitte die Zeile 2 auf
Prog = """C:\Program Files\Lenovo\HOTKEY\TPONSCR.exe""" 'Pfad zum Programm (für Neustart)
Erklärung: In VBS müssen Anführungszeichen, die selbst unter Anführungszeichen stehen, verdoppelt werden - daher jeweils insgesamt 3 Stück hintereinander. Benötigt werden die zusätzlichen Anführungszeichen, damit der Pfad beim Starten als Einheit betrachtet (und nicht am Leerzeichen zwischen "Program" und "Files" auseinandergerissen) wird.

Grüße
bastla
Member: vitos77
vitos77 May 15, 2010 at 02:47:39 (UTC)
Goto Top
Hallo bastla,

nochmals vielen Dank für Deine Hilfe, nun funktioniert es einwandfrei.

Grüße

Vitos