Verknüpfung erstellen "ausführen in"

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.
Frank aka Ch3ck3r
User
Beiträge: 49
Registriert: Dienstag 13. November 2007, 21:56
Wohnort: Berlin
Kontaktdaten:

Verknüpfung erstellen "ausführen in"

Beitragvon Frank aka Ch3ck3r » Dienstag 1. Januar 2008, 21:50

Hi Community.

Ich habe mir ein Programm geschrieben dass vor dem Start eines Spieles einige optionen in der Registry ändert. Das funktioniert schon ganz wundertbar allerdings habe ich ein Problem.

Wenn ich das spiel nun über subprocess oder os.spawn* starte bekomme ich die nachricht "... hat ein Problem festgestellt und muss beendet werden".

Nach einigen versuchen mit batch dateien und allem möglichen habe ich es dann geschafft das spiel über python zu starten in dem ich die Verknüpfung aufrufe.

Das Problem ist das diese Verknüpfung bei mir zwar existiert, wenn ich das Programm allerdings z.b. an meinen Freund schicke hat er die Verknüpfung vielleicht nicht. Also habe ich eine Verknüpfung erstellt

Code: Alles auswählen

import os,sys,win32com.client
shell = win32com.client.Dispatch("WScript.Shell")
link = shell.CreateShortcut(r"wwp.lnk")
link.TargetPath = r"C:\Programme..."
link.Save()


Allerdings funktioniert diese Verknüpfung nicht. Sie wird erstellt und ist "richtig". Beim ausführen kommt allerdings wieder der Fehler "... hat ein problem festgestellt.."

Der einzige Unterschied zwischen dieser Verknüpfung und der anderen (mit der es funktioniert) ist, das bei der, bei der es funktioniert im feld "Ausführen in" etwas steht.

Wie kann ich also eine Verknüpfung erzeugen die nicht nur Ziel hat sondern auch Ausführen in hat?
kostenlose TS2-Server für jeweils 31 Tage:
http://www.ts-onlyfree.de
Benutzeravatar
Nicht_zu_definieren
User
Beiträge: 21
Registriert: Freitag 21. April 2006, 17:01
Kontaktdaten:

Beitragvon Nicht_zu_definieren » Dienstag 1. Januar 2008, 22:10

Code: Alles auswählen

link.WorkingDirectory = r"C:\Programm\Fubar"


ist vermutlich das was du suchst ;)
Frank aka Ch3ck3r
User
Beiträge: 49
Registriert: Dienstag 13. November 2007, 21:56
Wohnort: Berlin
Kontaktdaten:

Beitragvon Frank aka Ch3ck3r » Dienstag 1. Januar 2008, 22:33

Danke genau das ist es

:P
kostenlose TS2-Server für jeweils 31 Tage:

http://www.ts-onlyfree.de
lunar

Beitragvon lunar » Mittwoch 2. Januar 2008, 13:19

Den selben Effekt kannst du übrigens auch erreichen, indem du der Popen Funktion aus dem Subprocess Modul das Argument "cwd" mit auf den Weg gibst:

Code: Alles auswählen

subprocess.Popen(['/Pfad/zu/meinem/Spiel'], cwd='/Pfad/zum/Spielverzeichnis')


Das sollte den Fehler auch beheben, und ist allgemein eleganter als der Umweg über die Verknüpfung.

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]