Как добавить скрипт Python в реестр запуска? - PullRequest
6 голосов
/ 16 января 2012

Я пытаюсь заставить мой скрипт 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 ]

5 голосов
/ 16 января 2012
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 в XP).Это работает, потому что Windows пытается открыть все файлы в папке автозагрузки, и если Python открывает PY по умолчанию, Windows открывает консоль Python.Попробуйте перезапустить, это должно работать.

1 голос
/ 30 декабря 2013

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

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

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

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')
...