Как добавить скрипт Python в реестр запуска?

Я пытаюсь заставить мой скрипт python запускаться при запуске, но я получаю сообщение об ошибке windowserror отказано, но я должен иметь возможность запускать программы при загрузке, потому что teamviewer (сторонняя программа, которую я скачал) запускается каждый раз, когда я перезагружаю свой компьютер так что я знаю, что у меня должна быть возможность запускать мою программу при запуске (хотя я могу делать что-то другое, хотя, если бы вы могли пролить свет на то, что делает teamviewer по-другому, чтобы его скрипт запускался при запуске, это было бы полезно),

Вот мой сценарий

import _winreg, webbrowser
key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,'Software\Microsoft\Windows\CurrentVersion\Run')
_winreg.SetValueEx(key,'pytest',0,_winreg.REG_BINARY,'C:\Users\"USERNAME"\Desktop\test.py') 
key.Close()
webbrowser.open('www.youtube.com')

Любой вклад приветствуется.

2 ответа

Решение
import webbrowser
webbrowser.open('www.youtube.com')

Избавьтесь от всего этого _winreg материала. Вместо этого вам (при условии, что двойной щелчок по файлу py открывает консоль) следует просто поместить его в папку запуска (C:\Users\yourusername\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup в Windows 7 и C:\Documents and Settings\yourusername\Start Menu\Programs\Startup в ХР). Это работает, потому что Windows пытается открыть все файлы в папке автозагрузки, и если Python открывает PY по умолчанию, Windows открывает консоль Python. Попробуйте перезапустить, это должно работать.

Бабуин: Я немного опоздал с публикацией, но вы, кажется, оставили этот код в конце кода.

Когда вы открываете ключ, вам нужно добавить права пользователя, если по умолчанию _winreg не имеет значение "READ":

Вот фрагмент с сайта Python http://docs.python.org/2/library/_winreg.html

sam - это целое число, которое определяет маску доступа, которая описывает желаемый безопасный доступ для ключа. По умолчанию KEY_READ. См. Права доступа для других допустимых значений.

Вот исправленный код:

 import _winreg, webbrowser
    key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,'Software\Microsoft\Windows\CurrentVersion\Run',_winreg.KEY_SET_VALUE)
    _winreg.SetValueEx(key,'pytest',0,_winreg.REG_BINARY,'C:\Users\"USERNAME"\Desktop\test.py') 
    key.Close()
webbrowser.open('www.youtube.com')
Другие вопросы по тегам