Script in Autostart ziehen

Code-Stücke können hier veröffentlicht werden.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

ice2k3 hat geschrieben:Braucht man für den Linux-Teil spezielle Voraussetzungen?
Nein, da ist schon alles nötige implementiert.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Die Dateien im Autostart werden immer im Ordner C:\Dokumente und Einstellungen\%USER% ausgeführt.
Gibt es einen Trick um das zu verhindern?

Oder muss ich dann manuell in meinem Programm das cwd ändern?
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Keine Ahnung. Aber meiner Meinung nach sollte ein Programm nicht von der CWD abhängig sein. :wink:
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Wie soll man es sonst machen mit Ressourcen wie Bildern etc.??
lunar

ice2k3 hat geschrieben:Wie soll man es sonst machen mit Ressourcen wie Bildern etc.??
Als Paketdaten mitliefern. Entweder mit setuptools und pkg_resources, oder manuell über distutils und __file__ auf Paketebene.
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

DasIch hat geschrieben:
INFACT hat geschrieben:Ausserdem gibt es glaube ich nur auf Windows eine Autostart :wink:
Falsch geglaubt.
Okey dann nicht :?
aber mann kann ja nach "Autostart" suchen und dann in jedes ergebnis einmal einen Link ziehen
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

@veers:

Code: Alles auswählen

def add(name, application)
ich weiß nicht ob ich das richtig verstehe, => name ist der name, wie z.B. "namederdatei.test" und application ist der Pfad und name der Datei (oder ist das ein link), die darein gezogen wird? :?: :(

Danke!

MfG Robin
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

INFACT hat geschrieben:...nach "Autostart" suchen und dann...
"Autostart" ist uebrigens Deutsch!
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

lunar hat geschrieben:
ice2k3 hat geschrieben:Wie soll man es sonst machen mit Ressourcen wie Bildern etc.??
Als Paketdaten mitliefern. Entweder mit setuptools und pkg_resources, oder manuell über distutils und __file__ auf Paketebene.
Und wenn ich das Programm mit py2exe für Windows kompilier?
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Dann kommst du an den Dateinamen mit sys.argv[0] ran.
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Und dann mach ich:

Code: Alles auswählen

import sys, os
filename = "script.py"
folder = sys.argv[0].rstrip(filename)
os.chdir(folder)
Und das soll dann ein gute Lösung sein?! Ist für mich ein Notfall-Hack, aber keine schöne Lösung meiner Meinung nach.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Code: Alles auswählen

import os, sys
folder = os.path.dirname(os.path.abspath(sys.argv[0]))
Ist mir ehrlich gesagt weit lieber ;)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

ice2k3 hat geschrieben:Und das soll dann ein gute Lösung sein?!
Ne, aber von so einer Lösung hat auch niemand gesprochen. Keine Ahnung wie du nun auf sowas kommst.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Das war ja nur auf die Schnelle.
Ich meinte das halt allgemein. Ist das so gängig, aus sys.argv den Ordner zu lesen und diesen dann als "Working-Dir" zu setzen?
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Du musst ja nicht unbedingt das working Directory wechseln, sondern kannst per `os.path.join(folder, fname)' dann an die eigentlichen Dateien kommen.
Wenn du keine GUI-Applikation hast, solltest du den Verzeichniswechsel unterlassen, denn der Benutzer hat das Programm ja eventuell aus einem guten Grund aus dem Verzeichnis gestartet.
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

a) Ja, es ist eine GUI-App
und
b) Nicht der Benutzer ruft es aus einem anderen Verzeichnis auf, sondern der Windows-Autostart ;)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

ice2k3 hat geschrieben:Ist das so gängig, aus sys.argv den Ordner zu lesen und diesen dann als "Working-Dir" zu setzen?
Nein. Es ist eigentlich nie gängig, dass das Programm sein Working Directory einfach so ändert. Der User hat das Programm in einem bestimmten Ordner gestartet und damit höcstwarscheinlich irgendetwas damit bezweckt, daher wäre es schlecht wenn das Programm eigenwillig entscheidet dass es doch lieber ein anderes Working Directory hätte.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

ice2k3 hat geschrieben: b) Nicht der Benutzer ruft es aus einem anderen Verzeichnis auf, sondern der Windows-Autostart ;)
Ganz ehrlich, wie oft muss ich das denn noch sagen?!

Das wäre mal meine Alternative (Hoffe mal, dass klar ist, was ich da mache^^)

Code: Alles auswählen

import os
import sys

def register(folder):
	start_file = "%s/start.bat" % folder
	with open(start_file, "w") as f:
		f.write("@echo off\n")
		f.write("cd "%s"\n" % folder)
		f.write("start /B dbremote.exe")
	# Dann kommt Registry Eintrag auf Batch File
			
if __name__ == "__main__":
	register(os.getcwd())
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

ice2k3 hat geschrieben:
ice2k3 hat geschrieben: b) Nicht der Benutzer ruft es aus einem anderen Verzeichnis auf, sondern der Windows-Autostart ;)
Ganz ehrlich, wie oft muss ich das denn noch sagen?!
Es ist generell ein schlechtes vorgehen, daher ist es egal wer es aufruft. Und auch bei Autostart-Verknüpfungen kann der Benutzer auswählen, was das Arbeitsverzeichnis sein sollte.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

Das mit der Registy finde ich nicht so gut, weil ich glaube, dass das programm sich selbst da rein kopiert [hab das mit os.getcwd() herausgefunden] (weiß aber nicht ob das richtig ist) und wenn man dll's braucht, dann funktioniert das Programm nicht. Wenn das nicht richtig ist, bitte korrigiert mich :wink:

Ich weiß nicht ob das richtig ist, aber ich glaube es.
Kann man irgendeinen Link in die Reg machen? -sorry ich kenne mich damit nicht so aus-
Danke
Robin :wink:
Zuletzt geändert von INFACT am Freitag 13. März 2009, 21:08, insgesamt 1-mal geändert.
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
Antworten