Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Per VBS auf laufenden Prozess zugreifen?

Frage Entwicklung VB for Applications

Mitglied: Camelidae

Camelidae (Level 1) - Jetzt verbinden

15.04.2010, aktualisiert 18.10.2012, 8212 Aufrufe, 10 Kommentare

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: http://www.administrator.de/index.php?content=140429 )
Ich hoffe, es ist halbwegs verständlich, was ich meine. Ansonsten bitte fragen!

Gruß,
Camelidae
Mitglied: 76109
15.04.2010 um 20:00 Uhr
Hallo Camelidae!

Folgendes Beispiel würde, falls Exel bereits geöffnet ist, die geöffnete Excel-App verwenden, ansonsten eine neue Excel-App starten.

01.
Set Shell = WScript.CreateObject("WScript.Shell") 
02.
Result = Shell.AppActivate("Microsoft Excel") 
03.
 
04.
If Result = True Then 
05.
    Set xExcel = GetObject(, "Excel.Application")  'Funktioniert nur mit Komma zu Begin 
06.
Else 
07.
    Set xExcel = CreateObject("Excel.Application") 
08.
End If
Eventuell hilf Dir das ja weiter?

Gruß Dieter
Bitte warten ..
Mitglied: Camelidae
15.04.2010 um 20:13 Uhr
Vielen Dank für die super schnelle Antwort!

Da geht's bei mir schon weiter mit den Problemen:

Wenn ich (Program ist Platzhalter)

01.
Set objProgram= GetObject (, "Program")
eingebe, krieg ich folgende Fehlermeldung: ActiveX component can't create object: 'GetObject'

Gebe ich aber (vorgestern oder so rausgefunden)

01.
Set objProgram= GetObject ("", "Program") 'Was ist eigentlich das 1. Argument, das hier leer übergeben wird?
ein, dann läuft es zumindest auf Doppelklick.
Sobald aber von PowerChute ausgeführt (siehe anderer Thread), dann öffnet er einen neuen Prozess.
Deshalb dachte ich, ich frag mal nach, ob es da irgendeinen Trick gibt. Oder ich etwas grundsätzlich falsch mache...

Gruß,
Camelidae
Bitte warten ..
Mitglied: 76109
15.04.2010 um 20:35 Uhr
Hallo Camelidae!

Eine bestimmte Datei mit Pfadangabe öffnen z.B.:
01.
Set xExcel = Getobject("C:\Test\Test.xls")
Eine bereits geöffnete Excel-Datei verwenden (für einen laufenden Prozess muss das Komma am Anfang stehen):
01.
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
Bitte warten ..
Mitglied: Camelidae
15.04.2010 um 20:47 Uhr
Hallo Dieter!

Die Objektbezeichnung, so wie ich sie verwende (TheSky6.RASCOMTheSky bzw. TheSky6.RASCOMTele), müsste eigentlich ok sein. Ich hab sie so vom Hersteller mitgeteilt gekriegt.
Und mit CreateObject funktioniert sie auch einwandfrei.

Das hinzufügen von ".Application" hilft leider auch nicht weiter - es kommt weiterhin die gleiche Fehlermeldung.

Wie gesagt, wenn ich vor dem Komma ein Leerzeichen übergebe, dann läuft es interessanterweise...

Sorry, ich bin grad etwas verwirrt, warum manches wie ist...

Gruß,
Camelidae
Bitte warten ..
Mitglied: 76109
15.04.2010 um 21:00 Uhr
Hallo Camelidae!

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.

Gruß Dieter
Bitte warten ..
Mitglied: Camelidae
15.04.2010 um 21:56 Uhr
Hallo Dieter!

Hm, vielleicht war das grad missverständlich. Also wenn ich da zwei Gänsefüßchen reinschreib mit nichts dazwischen, dann klappt's (wie oben gepostet), sonst wie gesagt die Fehlermeldung...
Und die Objektbezeichnung müsste wie gesagt auch korrekt sein.
Irgendwie mag ich das nicht, wenn Dinge sich so unlogisch verhalten :/
Hast du noch irgendeine Idee, wieso sich das alles so seltsam verhält? Und vor allem dann im Zusammenspiel mit der PowerChute-Geschichte?

Gruß,
Camelidae
Bitte warten ..
Mitglied: 76109
15.04.2010 um 23:38 Uhr
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
Bitte warten ..
Mitglied: Camelidae
16.04.2010 um 01:32 Uhr
Hallo Dieter!

Ok, dann ist wenigstens das logisch.
Nicht logisch ist allerdings immernoch, dass es bei Ausführung aus PowerChute aus trotzdem einen 2. Prozess öffnet, sogar, wenn dem Service vorgegeben wird, dass es den gleichen user verwenden soll. Ich glaube fast, dass ich mich da so langsam Windows geschlagen geben muss und das nicht hinbekomme :/

Gruß,
Camelidae
Bitte warten ..
Mitglied: 76109
16.04.2010, aktualisiert 18.10.2012
Hallo Camelidae!

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.

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: http://www.administrator.de/forum/per-remote-ein-vbscript-auf-entfernet ...
Bitte warten ..
Mitglied: Camelidae
22.04.2010 um 03:22 Uhr
Kurze Rückmeldung von mir:
Es lag am DCOM-Object des Programmes, auf das ich zugreifen wollte. Das musste auf 'interactive user' gestellt werden.
Da muss man auch erstmal draufkommen...

Danke nochmal!
Gruß,
Camelidae
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
VBS Prozess anhand Fenstername beenden
gelöst Frage von goodbytesBatch & Shell5 Kommentare

Hallo, wie kann ich eine Batch mittels vbs anhand des Fenstertitels beenden? Die cmd.exe zeigt als Fenstertitel an: "Administrator: ...

Batch & Shell
Fenstername von Prozess anzeigen lassen (vbs)
Frage von goodbytesBatch & Shell3 Kommentare

Hallo, mittels des folgenden Codes kann ich einen bestimmten Prozess "abschießen": Wenn ich die Datei mittels IrfanView geöffnet habe ...

VB for Applications
Visual Basic 2013 Fehler: Der Prozess kann nicht auf die Datei zugreifen
gelöst Frage von playmenVB for Applications5 Kommentare

Hallo Ich erkläre euch mal was mein Programm tun soll. Ich mache ein Login Tool welches anhand Einstellungen (welche ...

Server-Hardware
ILO im laufendem Betrieb konfigurieren
gelöst Frage von Becker1234Server-Hardware6 Kommentare

Hallo, ist es möglich bei einem Server den ILO ohne Neustart zu konfigurieren? Sprich IP-Adresse vergeben usw. Neustarten ist ...

Neue Wissensbeiträge
Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 25 MinutenWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 41 MinutenWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 12 StundenInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 19 StundenVerschlüsselung & Zertifikate1 Kommentar

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless19 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement17 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...