Python und VBScript

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
da-ker
User
Beiträge: 7
Registriert: Freitag 2. November 2007, 22:21

Die Sache ist die,

gibt es ne möglichkeit über python ein vbscript aufzurufen, ihm Parameter zu übergeben, und das ergebnis aus dem vbscript in python zu nutzen.

ich denke mit dem win32com modul bin ich auf dem richtigen weg, aber vllt kennt ja jemand ne einfache elegante lösung.

Nochmal kurzform:

pythonskript ruft vbscrip auf ----> vbscript rattert durch returned einen wert ---> python greift diesen wert auf.

danke schonmal
Imperator
User
Beiträge: 275
Registriert: Montag 20. August 2007, 14:43
Kontaktdaten:

das VbScript speichert den Wert in einer Textdatei und das Python Script kann darauf zugreifen :wink:
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Wenn Du ein fertiges VBScript verwenden musst, wäre dies eine Möglichkeit:

Code: Alles auswählen

# File: Test.py
import subprocess
print subprocess.call(['Test.vbs', '119'], shell=True)
für das Testscript

Code: Alles auswählen

'File: Test.vbs
wscript.Echo(Wscript.Arguments.Item(0))
wscript.Quit 911
Wenn Du aber das Script selbst schreiben willst, kannst Du das gleich in Python tun. Hier ein Beispiel:

Code: Alles auswählen

import win32com.client
strComputer = "."
objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")
objSWbemServices = objWMIService.ConnectServer(strComputer,"root\cimv2")
colItems = objSWbemServices.ExecQuery("Select * from CIM_VideoControllerResolution")
for objItem in colItems:
    print "Caption: ", objItem.Caption
    print "Description: ", objItem.Description
    print "Horizontal Resolution: ", objItem.HorizontalResolution
    print "Max Refresh Rate: ", objItem.MaxRefreshRate
    print "Min Refresh Rate: ", objItem.MinRefreshRate
    print "Number Of Colors: ", objItem.NumberOfColors
    print "Refresh Rate: ", objItem.RefreshRate
    print "Scan Mode: ", objItem.ScanMode
    print "Setting ID: ", objItem.SettingID
    print "Vertical Resolution: ", objItem.VerticalResolution
MfG
HWK
da-ker
User
Beiträge: 7
Registriert: Freitag 2. November 2007, 22:21

die idee mit der text datei hat ich auch schon, aber wollte nach ner möglichkeit suchen dass eleganter zu machen ;)

das mit den subprocesses klingt intressant.

Leider ist das VBScript schon da und ich hab leider noch keine möglichkeit gefunden mit python auf den server zuzugreifen den wir benutzen (hp quality center: vllt hat da ja jemand erfahrung mit?! ; )

danke aufjedenfall, gruß
Antworten