Как добавить скрипт 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')