2017-04-18 3 views
1

Hey und danke für alle deine Antworten. Ich versuche, ein Stück Python-Code zu schreiben, der nur einmal ausgeführt wird (das erste Mal, dass das Programm installiert wird) und kopiert das Programm in die Windows-Startordner.Code, der nur einmal ausgeführt wird, Python Startup-Ordner

(C: \ Benutzer \ USER \ AppData \ Roaming \ Microsoft \ Windows \ Startmenü \ Programme \ Autostart)

, dass der Code ist i für diese geschrieben. (Bitte verwenden Sie mich nicht beurteilen. Ich weiß, es ist sehr beschissen Code. Aber ich bin sehr neu auf Codierung. (Dies ist die zweite kleines Programm, ich versuche zu schreiben)

import os 
import shutil 


#get username 
user = str(os.getlogin()) 
user.strip() 

file_in = ('C:/Users/') 
file_in_2 = ('/Desktop/Py Sandbox/test/program.py') 
file_in_com = (file_in + user + file_in_2) 

folder_seg_1 = ('C:/Users/') 
folder_seg_2 = ('/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup') 
#create FolderPath 
folder_com = (folder_seg_1 + user + folder_seg_2) 

shutil.copy2(file_in_com, folder_com) 

Weil Ich habe einen Fehler, dass es keine solche interne, externe, Befehl, Programm oder Batch-Datei namens Installer. Ich habe versucht, eine Batch-Datei mit nichts darin zu generieren, die ausgeführt wird, wenn der Installationsvorgang abgeschlossen ist. (Aber der Fehler ist immer noch da.)

Die Idee dahinter, dass es mein Hauptprogramm ist, führen Sie es sie führt den Code oben und kopiert sich in den Autostart-Ordner. Dann wird der Code der gesamten Installer-Datei aus meinem Hauptprogramm gelöscht.

import Installer 

#run Installer File 
os.system('Installer') 
os.remove('Installer.py') 

Aber vielleicht gibt es jemanden da draußen, die die Antwort auf dieses Problem kennt. Und wie ich schon sagte, danke für alle Ihre Antworten < 3.

BTW Ich benutze derzeit Python 3.5.

+0

Sie sollten die Fehlermeldung mit dem vollständigen Stack-Trace veröffentlichen. –

+0

C: \ Benutzer \ Haupt \ AppData \ Lokale \ Programme \ Python \ Python35 \ python.exe "C:/Benutzer/Main/Desktop/Py Sandbox/Programm/Program.py" 'Installer' wird nicht als intern erkannt oder externen Befehl, ausführbare Programm oder Batch-Datei. – Cvqe

Antwort

0

Okay Jungs jetzt endlich habe ich es endlich geschafft, dieses Problem zu lösen. Es ist eigentlich nicht so schwer, aber Sie müssen aus einer anderen Perspektive denken. Das ist jetzt der Code, den ich mir ausgedacht habe.

import os 
import sys 
import shutil 

# get system boot drive 
boot_drive = (os.getenv("SystemDrive")) 

# get current Username 
user = str(os.getlogin()) 
user.strip() 

# get script path 
script_path = (sys.argv[0]) 


# create FolderPath (Startup Folder) 
folder_seg_1 = (boot_drive + '/Users/') 
folder_seg_2 = ('/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup') 
folder_startup = (folder_seg_1 + user + folder_seg_2) 


#check if file exits, if yes copy to Startup Folder 
file_name = (ntpath.basename(script_path)) 
startup_file = (folder_startup + ("/") + file_name) 
renamed_file = (folder_startup + ("/") + ("SAMPLE.py")) 


# checkfile in Startup Folder 
check_path = (os.path.isfile(renamed_file)) 

if check_path == True: 
    pass 
else: 
    shutil.copy2(script_path, folder_startup) 
    os.rename(startup_file, renamed_file) 

Dieses Skript wird Ihren Benutzernamen, Ihr Boot-Laufwerk, der Speicherort der Datei von Ihre Datei als erzeugt alle benötigten Pfade. Wie Ihr persönlicher Startordner. Es prüft dann, ob es bereits eine Datei im Autostart-Ordner gibt, wenn ja, tut es einfach nichts und geht weiter, wenn es nicht kopiert die Datei in den Autostart-Ordner und benennt es um (Sie können das verwenden, wenn Sie wollen, aber Sie don Ich brauche es nicht).

Verwandte Themen