вторник, 2 августа 2011 г.

Автозагрузка python приложения в Windows

Осуществить данную задачу можно двумя путями, первый состоит в том, чтобы записать значение в реестр (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run), здесь подробно описан данный метод. Однако при этом нам будет необходимо разрешение на запись в реестр, и чтобы его получить придется постараться.

Второй путь проще и не требует особых привилегий программе, для этого необходимо создать ярлык программы в C:\Users\UserName\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup (путь для Windows 7).

Ниже показан код, позволяющий это сделать, при этом создается ярлык на исполняемый файл и сохраняется в выше указанную папку, и при желании его от туда можно убрать.


import winshell

import os
import sys

def set_startup():
try:
# get path and file name for application
startFile = os.path.abspath(sys.argv[0])
# get startup folder
startup=winshell.startup()
# create shortcut in startup folder
winshell.CreateShortcut (
Path=os.path.join (startup, "application.lnk"),
Target=startFile,
Icon=(startFile, 0),
Description="My application",
StartIn=os.path.abspath(None)
)
except :
pass

def remove_startup():
try:
startup=winshell.startup()
# remove shortcut from startup folder
if os.path.isfile(startup + '\\application.lnk'):
os.remove(startup + '\\application.lnk')
except :
pass


В коде использован пакет winshell, позволяющий получать доступ к специальным папкам Windows.

1 комментарий: