Автозапуск скрипта Python при запуске windows - PullRequest
0 голосов
/ 31 октября 2019

Я пытаюсь создать скрипт, который будет отображать страницу в 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 не открывается и не отображает страницу. По сути, мой скрипт не запускается. Что случилось ? Пожалуйста, помогите мне.

1 Ответ

2 голосов
/ 31 октября 2019

Проблема не в вашем скрипте. Это с вашим ключом реестра.

Вы должны указать 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)  
...