(C:\ Users \ USER \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Startup)
这是我为此写的代码。 (请不要评判我。我知道 非常糟糕的代码。但我对编码很新。 (这是第二个 我尝试写的小程序)
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)
因为我收到错误,所以没有这样的内部,外部, 名为Installer的命令,程序或批处理文件。我试着生成一个批处理文件 在安装过程完成时执行的任何内容都没有。(但错误仍然存在。)
save_path = 'C:/Windows/assembly/temp'
name_of_file = str("Installer")
completeName = os.path.join(save_path, name_of_file+".bat")
file1 = open(completeName, "w")
file1.close()
这背后的主要思想是我的主程序,你执行 它运行上面的代码并将自身复制到启动文件夹。 然后代码整个安装程序文件从我的主要删除 程序
import Installer
#run Installer File
os.system('Installer')
os.remove('Installer.py')
但也许那里有人知道这个问题的答案。 正如我之前所说,感谢您的所有答案< 3。
BTW我目前正在使用Python 3.5。
答案 0 :(得分:0)
好的家伙现在我终于设法解决了这个问题。实际上并不是那么难,但你需要从另一个角度思考。 这是我想出的代码。
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)
此脚本获取您的用户名,启动驱动器,文件位置 您的文件比创建所需的所有路径。喜欢你的个人 启动文件夹。它比检查是否已存在文件 启动文件夹,如果是,它只是什么都不做,继续,如果不是 将文件复制到启动文件夹而不是重命名(如果需要,可以使用它,但不需要)。
答案 1 :(得分:0)
没有必要执行 os.getenv("SystemDrive")
或 os.getlogin()
,因为 os.getenv("AppData")
已经获得了两者。所以我所知道的最直接的方法是:
path = os.path.join(os.getenv("appdata"),"Microsoft","Windows","Start Menu","Programs","Startup")