Mehrere dlls nacheinander registrieren

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
r0bnet
User
Beiträge: 10
Registriert: Montag 11. Januar 2010, 20:20

Mittwoch 31. März 2010, 15:36

Hoi!

Ich hab hier ein Softwareprojekt, bei dem ich täglich mind. einmal ein SVN Update mache und da unter Anderem dlls mitkommen, die ich danach deregistrieren und dann wieder registrieren muss. Ich hab ein Dokument in dem steht, welche Dateien de/registriert werden müssen.
Deregistrierung: regsvr32 /u /s <Name der dll>
Registrierung: regsvr32 /s <Name der dll>

Nun will ich, dass das alles automatisch geschieht. Ich hab es versucht mit:

Code: Alles auswählen

os.system('regsvr32 /s ' + val)
(bzw mit /u beim Deregistrieren)
Das Problem ist, dass sich bei jedem Aufruf ein CMD-Fenster öffnet und danach wieder schließt. Kann man das irgendwie umgehen, sodass die Fenster sich nicht öffnen?

greez
BlackJack

Mittwoch 31. März 2010, 15:52

@r0bnet: Versuchs mal mit dem `subprocess`-Modul. Falls sich da auch noch ein Fenster öffnet, liegt's an `regsvr32` und ich weiss nicht ob man da was gegen machen kann.
r0bnet
User
Beiträge: 10
Registriert: Montag 11. Januar 2010, 20:20

Mittwoch 31. März 2010, 16:28

Ein Bekannter hat dafür auch schon ein Tool mit AutoIt3 geschrieben und da kommt auch kein Fenster hoch. (Er nutzt die RunWait() Fkt.)
Ich will nur lieber selber was in Python schreiben, da sein Programm bei mir nicht immer richtig funktioniert (warum auch immer, hab keine Lust das zu debuggen) und ich Python mag :)

Ich werde es ausprobieren und mein Ergebnis hier melden!

greez
Benutzeravatar
snafu
User
Beiträge: 5466
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Mittwoch 31. März 2010, 16:39

...und bitte ohne `shell=True`...
shcol (Repo | Doc | PyPi)
r0bnet
User
Beiträge: 10
Registriert: Montag 11. Januar 2010, 20:20

Mittwoch 31. März 2010, 22:13

Ganz blöd bin ich auch nicht -.-
Aber es hat funktioniert, danke! :)
Antworten