sry wegen dem doppelpost aber ich bin am verzweifeln
Also ich erklär erstmal alles, ich habe zwei pythonscripts, das eine dient dem dateiupload und das zweite dem registrieren in der registry damit der eintrag im windows kontextmenu erscheint. funktioiert auch alles wie es sollte an einem pc mit installiertem python. sobald ich aber es mit den kompilierten versionen auf einem anderen pc versuche der kein python installiert hat kann ich nur dateien hochladen ohne leezeichen im dateipfad, bei meiner testumgebung mit python 2.5 & 2.6 funktioniert dies jedoch.
Ich verstehe nicht wieso, vielleicht liegt es daran das beim kompilieren etwas fehlt.
ich kompiliere mit 2.5, 2.6 und der neusten trunk von pyInstaller.
hier meine zwei quelltexte: ich hab die zugangasdaten in der upload.py gelassen damit ihr es selbst testen könnt wenn ihr wollt:
upload.py
Code: Alles auswählen
import sys, os
from ftplib import FTP
server = 'ftp.pyforum.py.funpic.de'
username = 'pyforum'
password = 'pyforum2'
def upload(fname):
#remote_folder = "temporary" #wunschordner
name = os.path.basename(fname) #filename fetchen
name = name.replace(" ","-") #bindestriche ersetzen fuer besseres web-handling
#Connect to server
ftp = FTP(server)
ftp.login(username, password)
#ftp.cwd('public_html/'+remote_folder) #wechsel zu remote_folder
#ftp.retrlines('LIST') #ausfuehrliches dir listing um ordnerberechtigungen zu ueberpruefen
#Upload the file to the server
#print "Hochladen...",
ftp.storbinary("STOR "+name, open(fname,"rb"))
ftp.close()
#print "Fertig!"
upload(sys.argv[1])
reg.py
Code: Alles auswählen
import sys, os
from _winreg import *
def register(command_name,association=sys.argv[0],runner="upload.exe"):
association = os.path.realpath(association)
runner = os.path.realpath(runner)
if not os.path.isfile(runner):
print "Uploader Existiert nicht! So solls sein: "+runner
return 0
try:
reg = CreateKey(HKEY_CLASSES_ROOT,"*\\Shell\\"+command_name+"\\Command")
runner_path = runner.replace("\\","\\\\")
key = runner + " %1"
print command_name+" :: "+key
SetValue(reg, "", REG_SZ, key)
CloseKey(reg)
print "erfolgreich"
except:
print "FAIL"
def unregister(command_name):
try:
if command_name=="":
return 0 #schutz um nicht komplette Registry zu loeschen HEHE
DeleteKey(HKEY_CLASSES_ROOT,"*\\Shell\\"+command_name+"\\Command")
DeleteKey(HKEY_CLASSES_ROOT,"*\\Shell\\"+command_name)
print ("Geloescht: HKEY_CLASSES_ROOT\\"+"*\\Shell\\"+command_name)
except:
print "Command "+command_name+" wurde nicht in der Registry registriert"
command_name = "Upload"
#Kein Argument?, lasst uns registrieren
if len(sys.argv)==1:
register(command_name)
#Argument -unreg ?
if len(sys.argv)==2:
if sys.argv[1] == "-unreg":
unregister(command_name)
raw_input("")
sys.exit()