2015-10-16 39 views
-5

我發現程序需要自己添加到%ALLUSERSPROFILE%\Start Menu\Programs\Startup才能自動啓動。但是,我怎麼會這樣做,不知道這個人的用戶配置文件?Python:程序添加自身啓動時的代碼(Windows)

此外,我讀了一些關於該程序被添加到系統註冊表?我會怎麼做?

我發現這個代碼複製該文件

os.rename("path/to/current/myfile.exe", "path/to/new/desination/for/myfile.exe") 

但我不知道路徑到當前文件。每個人都有一個不同的用戶名,所以/Bob/Downloads將不會在文件所在的位置,我不知道他們的電腦上會有什麼%ALLUSERSPROFILE%名字。

回答

0

警告:我在Windows 7上測試這個;它也應該在其他Windows上工作,但我不能承諾。

%ALLUSERSPROFILE%和%USERPROFILE%的值在os.environ中。

如果您的代碼運行的誰下載了它的用戶,你可以因此做這樣的事情:

import os 
aup = os.environ.get("ALLUSERSPROFILE") 
up = os.environ.get("USERPROFILE") 
if aup and up: 
    os.rename(os.path.join(up,"Downloads","myfile.exe")),os.path.join(aup,"Start menu","Programs","startup","myfile.exe")) 
else: 
    print("Oops, couldn't look up stuff in os.environ") 

請注意,我不認爲有一個簡單的方法來獲得其他用戶的個人資料;如果你在臺式機上運行並且正在運行,但是想要得到bob的目錄,那麼你大概會作弊並且執行 alt_user_profile = os.path.join(up,"..","bob") (即假設用戶全部在相同的父目錄中)。如果您正在某個用戶配置文件不在同一家長中的某個位置運行,則可能需要查看Windows特定的API。 (當然,嘗試接觸另一個用戶的東西時可能會遇到權限問題)

相關問題