Ich füge meine Programm gerade eine Autostart Funktion dazu. Unter GNU/Linux geht das ja herrlich einfach: http://standards.freedesktop.org/autost ... atest.html
Gibt es unter Windows etwas vergleichbares?
http://www.python-forum.de/topic-4792.h ... =autostart
Hier wird das ganze ja mit einer externen lib gemacht. Ich wäre jedoch froh wenn das ganze auch ohne eine weitere Abhängigkeit auskommen würde.
Ich brauche die folgenden Operationen:
Autostart Verknüpfung erstellen.
Prüfen ob Autostart Verknüpfung besteht.
Autostart Verknüpfung entfernen.
Autostart unter Windows
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo veers!veers hat geschrieben:Ich brauche die folgenden Operationen:
Autostart Verknüpfung erstellen.
Prüfen ob Autostart Verknüpfung besteht.
Autostart Verknüpfung entfernen.
Entweder du legst eine Verknüpfung in den Autostart-Ordner des Startmenüs oder du legst einen Eintrag in die Registry.
Die Schlüssel vom Typ Zeichenfolge (REG_SZ) werden beim Starten in alphabetischer Reihenfolge abgearbeitet und automatisch gelöscht.HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
Wie solche Einträge aussehen können, siehst du, wenn du dir den Registry-Ordner
ansiehst.HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
"regedit" heißt das Programm dafür.
Viele Setup-Programme bieten die Möglichkeit, beim Setup so einen Registry-Eintrag zu erstellen. Ansonsten kannst du ja auch mit dem mitgelieferten Python-Modul "_winreg" arbeiten.
EDIT:
Das hier sollte evt. noch Fragen beantworten: http://www.python-forum.de/topic-4792.html
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
Das tönt ähnlich der freedesktop Lösung, das ist soweit schon einmal gut. Nur wie finde ich diesen Ordner (die sind ja bei Windows bis Vista sogar lokalisiert O_o)? Und gibt es einen einfach weg solche Verknüpfungen aus einem Python Programm heraus zu erstellen? Ich vermute sehr schwer das es mit os.(sym)link nicht geht. Naja notfalls könnte ich wohl eine Batchdatei erstellen.gerold hat geschrieben: Hallo veers!
Entweder du legst eine Verknüpfung in den Autostart-Ordner des Startmenüs oder du legst einen Eintrag in die Registry.
Ich würde das ganzen gerne in ein Modul packen und dann vergessen.
Dank und Gruss,
Jonas
Edit:
Bei MSDN finde ich das ganze auch nur für .NET
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Hängt ab, wie du die Einträge anlegen willst, veers. Wenn ein Setup-Programm im Spiel ist, dann kann es recht einfach in den Autostart-Ordner eine Verknüpfung reinschreiben. Aus Python-Ebene ist es schwieriger, denn dazu müsste man entweder das Programm in den Ordner kopierten (ist aber nur bei Programmen die aus einer EXE-Datei bestehen eine brauchbare Möglichkeit) oder dort eine LNK-Datei anlegen, im Windows Slang "Verknüpfung" genannt. Verknüpfungen kannst du mit pywin32 anlegen, über ctypes könnte das womöglich auch gehen, das COM-Interface heißt jedenfalls IShellLink. Die dritte Möglichkeit ist es, eine BAT/CMD-Batchdatei in den Autostart-Ordner zu schreiben - aber da blinkt zumindest mal ein DOS-Fenster auf, das ist nicht ganz so schön.gerold hat geschrieben:Entweder du legst eine Verknüpfung in den Autostart-Ordner des Startmenüs oder du legst einen Eintrag in die Registry.
Alos ist es unter Python eher gangbar, in die Registry zu schreiben, so wie Gerold beschrieben hat.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice