Problem mit win32com und Win Scripting Host

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
NaNO3

Hallo zusammen

Ich habe ein problem ich möchte über die com schnittstelle auf den WSH zugreifen das mache ich so:

Code: Alles auswählen

import sys
import win32api
import win32com.client

shell = win32com.client.Dispatch("WScript.Shell")

oExec = shell.Exec("C:\Documents and Settings\Pletscher\Desktop\compile.bat")

while oExec.Status == 0:
    WScript.Sleep(500) 
das problem ist aber das immer der fehler auftauch : NameError : name 'WScript' is not defined.

Aber ich habe bei M$ in der M$DN gelesen das man das genau so schreiben muss hier der link dazu

http://msdn.microsoft.com/library/defau ... method.asp

ich komm einfach nicht weiter mit diesem problem.

wen es natürlich eine andere möglich keit geben würde ein programm oder einen batch zu starten und ihm auch noch argumente zu übergeben dan währe ich natürlich auch über infos froh.

mfg NaNO3

Edit (Leonidas): Code in Python-Tags gesetzt.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Klar, WScript ist ein Engebautes Objekt des WSH. WScript.Sleep ist das gleiche wie

Code: Alles auswählen

import time
time.sleep(0.5)
also kannst du es ruhig ersetzen.

Aber du kannst auch ganz einfach os.system() oder etwas aus dem Modul subprocess nutzen, das ist viel einfacher als COM-Aufrufe.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
NaNO3

Danke dir für den Tip

Ich habe das Jetzt so gelöst:

Code: Alles auswählen

import sys
import os

os.execl("C:\Documents and Settings\Pletscher\Desktop\compile.bat")
funktioniert eigentlich ganz gut

ein einziges kleines Problem PythonWin stürzt beim ausführen immer ab wen ich das script aber direkt ausführe, gibt es keine probleme.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

NaNO3 hat geschrieben:[...]

Code: Alles auswählen

os.execl("C:\Documents and Settings\Pletscher\Desktop\compile.bat")
[...]
ein einziges kleines Problem PythonWin stürzt beim ausführen immer ab wen ich das script aber direkt ausführe, gibt es keine probleme.
Hi!

PythonWin stürzt wahrscheinlich ab, weil execl das Kommando nicht wieder zurück gibt. Versuche es mal mit os.system oder einer der os.spawn-Varianten. Bei os.spawn kannst du auch angeben, ob das Python-Programm warten soll, bis das aufgerufene Programm fertig ist.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten