Python 脚本在 windows 启动时自动运行

Python script autorun on windows startup

我正在尝试创建一个脚本,该脚本将在启动时在 chrome 中显示一个页面。也就是说,我试图在启动时 运行 一个 python 脚本。我正在使用 winreg 模块来执行此操作。

这是我的脚本,用于在启动时添加我的页面显示脚本:

import winreg  
import os    
import sys, traceback          

def AddToRegistry(): 


    pth = os.path.dirname(os.path.realpath(path_to_page_display_script)) 

    s_name="test.py"     

    address=os.path.join(pth,s_name)  

    try:
        open = winreg.OpenKey(winreg.HKEY_CURRENT_USER, r"Software\Microsoft\Windows\CurrentVersion\Run", reserved=0, access = winreg.KEY_ALL_ACCESS) 

        winreg.SetValueEx(open,"pytest",0,winreg.REG_SZ,address) 

        winreg.CloseKey(open)

    except Exception:
        traceback.print_exc(file=sys.stdout)

if __name__=="__main__": 
    AddToRegistry()

这是我的页面显示脚本:

import webbrowser

url = 'http://docs.python.org/'

chrome_path = 'path_to_chrome/chrome.exe %s'

webbrowser.get(chrome_path).open(url)

脚本 运行 没有任何错误,但在重新启动我的机器时,chrome 不会自行打开,也不会显示页面。基本上,我的脚本不会运行。怎么了 ?请帮助我。

问题不在于您的脚本。它与您的注册表项有关。

您需要告诉 windows 调用 Python.exe C:\path_to_script\test.py,而不是 test.py

所以不是这个:

这个:

path_to_python_exe = "C:\python\python38";
address=os.path.join(pth,s_name)  
address = os.path.join(path_to_python_exe, "python.exe") + " " + address;

或者如果 Python.exe 保证在您的 PATH 中,只需这样:

address = "Python.exe" + " " + os.path.join(pth,s_name)