Per VBS auf laufenden Prozess zugreifen?
Hallo mal wieder,
ich bin immernoch dabei ein paar Dinge per VBScript zu realisieren.
Momentan stolpere ich immer wieder darüber, dass ich nicht zuverlässig auf einen schon laufenden Prozess (sichtbar ua im Taskmanager) zugreifen kann. Wie bewerkstelligt man sowas denn am besten?
Ich habe momentan mit GetObject gearbeitet, aber das öffnet je nach Art der Ausführung trotzdem einen neuen Prozess oder eine neue Instanz. Wichtig für mich wäre aber, den schon laufenden zu beeinflussen.
(siehe auch Thread: APC UPS mit PowerChute BE 7.05 - Problem mit Skript )
Ich hoffe, es ist halbwegs verständlich, was ich meine. Ansonsten bitte fragen!
Gruß,
Camelidae
ich bin immernoch dabei ein paar Dinge per VBScript zu realisieren.
Momentan stolpere ich immer wieder darüber, dass ich nicht zuverlässig auf einen schon laufenden Prozess (sichtbar ua im Taskmanager) zugreifen kann. Wie bewerkstelligt man sowas denn am besten?
Ich habe momentan mit GetObject gearbeitet, aber das öffnet je nach Art der Ausführung trotzdem einen neuen Prozess oder eine neue Instanz. Wichtig für mich wäre aber, den schon laufenden zu beeinflussen.
(siehe auch Thread: APC UPS mit PowerChute BE 7.05 - Problem mit Skript )
Ich hoffe, es ist halbwegs verständlich, was ich meine. Ansonsten bitte fragen!
Gruß,
Camelidae
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 140768
Url: https://administrator.de/forum/per-vbs-auf-laufenden-prozess-zugreifen-140768.html
Ausgedruckt am: 17.04.2025 um 11:04 Uhr
10 Kommentare
Neuester Kommentar

Hallo Camelidae!
Folgendes Beispiel würde, falls Exel bereits geöffnet ist, die geöffnete Excel-App verwenden, ansonsten eine neue Excel-App starten.
Eventuell hilf Dir das ja weiter?
Gruß Dieter
Folgendes Beispiel würde, falls Exel bereits geöffnet ist, die geöffnete Excel-App verwenden, ansonsten eine neue Excel-App starten.
Set Shell = WScript.CreateObject("WScript.Shell")
Result = Shell.AppActivate("Microsoft Excel")
If Result = True Then
Set xExcel = GetObject(, "Excel.Application") 'Funktioniert nur mit Komma zu Begin
Else
Set xExcel = CreateObject("Excel.Application")
End If
Eventuell hilf Dir das ja weiter?
Gruß Dieter

Hallo Camelidae!
Eine bestimmte Datei mit Pfadangabe öffnen z.B.:
Eine bereits geöffnete Excel-Datei verwenden (für einen laufenden Prozess muss das Komma am Anfang stehen):
Wenn Dein Programm bereits läuft und Du eine Fehlermeldung bekommst, dann liegt das daran, das die Object-Bezeichnung nicht korrekt ist. Versuchs mal mit "ProgrammName.Application"
Gruß Dieter
Eine bestimmte Datei mit Pfadangabe öffnen z.B.:
Set xExcel = Getobject("C:\Test\Test.xls")
Set xExcel = GetObject(, "Excel.Application")
Wenn Dein Programm bereits läuft und Du eine Fehlermeldung bekommst, dann liegt das daran, das die Object-Bezeichnung nicht korrekt ist. Versuchs mal mit "ProgrammName.Application"
Gruß Dieter

Hallo Camelidae!
Gruß Dieter
Zitat von @Camelidae:
Wie gesagt, wenn ich vor dem Komma ein Leerzeichen übergebe, dann läuft es interessanterweise...
Ja, so wie es soll mit bereits laufendem Prozess? Wenn ja, ist das interessant, denn mit Excel z.B. funktionierts nur mit dem alleinstehenden Komma.Wie gesagt, wenn ich vor dem Komma ein Leerzeichen übergebe, dann läuft es interessanterweise...
Gruß Dieter

Hallo Camelidae!
Also, wenn's mit dem Leerstring (2xDoppelQuote) funktioniert, dann ist das von der Syntax her sogar eher korrekt. Nur bei Excel funktioniert es so leider nicht, da wird vermutlich der Parameter NULL übergeben?
Gruß Dieter
Also, wenn's mit dem Leerstring (2xDoppelQuote) funktioniert, dann ist das von der Syntax her sogar eher korrekt. Nur bei Excel funktioniert es so leider nicht, da wird vermutlich der Parameter NULL übergeben?
Gruß Dieter

Hallo Camelidae!
Hab das mit Excel nochmal getestet und da wird mit "" auch ein 2. Prozess im Taskmanager gestartet, allerdings wird dabei keine Windowsoberfläche sichtbar. D.h. man sieht nur im Taskmanager, dass ein 2. Prozess gestartet ist. Und nur, wenn ich das Komma ohne "" verwende, dann habe ich Zugriff auf den aktuellen Prozess, der in der Windowsoberfläche auch sichtbar ist.
Dazu möchte ich noch anmerken, dass in der Excelhilfe für die GetObject-Funktion auf den aktuellen Prozess mit der Schreibform "GetObject(, "Excel.Application")" hingewiesen wird. Das ist also keine Eigenerfindung von mir
Da das aber offensichtlich bei Dir nicht funktioniert, gibt es sicherlich noch eine Möglichkeit über WMI, aber dazu bin ich im Moment auch überfragt
Gruß Dieter
PS. Dieser Beitrag könnte hilfreich sein: Per remote ein vbscript auf entferneten pc ausführen
Zitat von @Camelidae:
Ok, dann ist wenigstens das logisch.
Nicht logisch ist allerdings immernoch, dass es bei Ausführung aus PowerChute aus trotzdem einen 2. Prozess öffnet,
Wobei wir wieder am Anfang stehen und der Zugriff auf den aktuellen Prozess doch nur ohne "" möglich ist.Ok, dann ist wenigstens das logisch.
Nicht logisch ist allerdings immernoch, dass es bei Ausführung aus PowerChute aus trotzdem einen 2. Prozess öffnet,
Hab das mit Excel nochmal getestet und da wird mit "" auch ein 2. Prozess im Taskmanager gestartet, allerdings wird dabei keine Windowsoberfläche sichtbar. D.h. man sieht nur im Taskmanager, dass ein 2. Prozess gestartet ist. Und nur, wenn ich das Komma ohne "" verwende, dann habe ich Zugriff auf den aktuellen Prozess, der in der Windowsoberfläche auch sichtbar ist.
Dazu möchte ich noch anmerken, dass in der Excelhilfe für die GetObject-Funktion auf den aktuellen Prozess mit der Schreibform "GetObject(, "Excel.Application")" hingewiesen wird. Das ist also keine Eigenerfindung von mir
Da das aber offensichtlich bei Dir nicht funktioniert, gibt es sicherlich noch eine Möglichkeit über WMI, aber dazu bin ich im Moment auch überfragt
Gruß Dieter
PS. Dieser Beitrag könnte hilfreich sein: Per remote ein vbscript auf entferneten pc ausführen