Improve Article
Save Article
Improve Article
Save Article
Adding a Python script to windows start-up basically means the python script will run as the windows boots up. This can be done by two step process –
Step #1: Adding script to windows Startup folder
After the windows boots up it runs (equivalent to double-clicking) all the application present in its startup directory.
Address:
C:Userscurrent_userAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup
By default the AppData folder under the current_user is hidden so enable hidden files to get it and paste the shortcut of the script in the given address or the script itself. Also the .PY files default must be set to python IDE else the script may end up opening as a text instead of executing.
Step #2: Adding script to windows Registry
This process can be risky if not done properly, it involves editing the windows registry key HKEY_CURRENT_USER from the python script itself. This registry contains the list of programs that must run once the user Login. just like few application which pops up when windows starts because the cause change in registry and add their application path to it.
Registry Path:
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun
Below is the Python code :
Python3
import
winreg as reg
import
os
def
AddToRegistry():
pth
=
os.path.dirname(os.path.realpath(__file__))
s_name
=
"mYscript.py"
address
=
os.join(pth,s_name)
key
=
HKEY_CURRENT_USER
key_value
=
"SoftwareMicrosoftWindowsCurrentVersionRun"
open
=
reg.OpenKey(key,key_value,
0
,reg.KEY_ALL_ACCESS)
reg.SetValueEx(
open
,
"any_name"
,
0
,reg.REG_SZ,address)
reg.CloseKey(
open
)
if
__name__
=
=
"__main__"
:
AddToRegistry()
Note: Further codes can be added to this script for the task to be performed at every startup and the script must be run as Administrator for the first time.
Improve Article
Save Article
Improve Article
Save Article
Adding a Python script to windows start-up basically means the python script will run as the windows boots up. This can be done by two step process –
Step #1: Adding script to windows Startup folder
After the windows boots up it runs (equivalent to double-clicking) all the application present in its startup directory.
Address:
C:Userscurrent_userAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup
By default the AppData folder under the current_user is hidden so enable hidden files to get it and paste the shortcut of the script in the given address or the script itself. Also the .PY files default must be set to python IDE else the script may end up opening as a text instead of executing.
Step #2: Adding script to windows Registry
This process can be risky if not done properly, it involves editing the windows registry key HKEY_CURRENT_USER from the python script itself. This registry contains the list of programs that must run once the user Login. just like few application which pops up when windows starts because the cause change in registry and add their application path to it.
Registry Path:
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun
Below is the Python code :
Python3
import
winreg as reg
import
os
def
AddToRegistry():
pth
=
os.path.dirname(os.path.realpath(__file__))
s_name
=
"mYscript.py"
address
=
os.join(pth,s_name)
key
=
HKEY_CURRENT_USER
key_value
=
"SoftwareMicrosoftWindowsCurrentVersionRun"
open
=
reg.OpenKey(key,key_value,
0
,reg.KEY_ALL_ACCESS)
reg.SetValueEx(
open
,
"any_name"
,
0
,reg.REG_SZ,address)
reg.CloseKey(
open
)
if
__name__
=
=
"__main__"
:
AddToRegistry()
Note: Further codes can be added to this script for the task to be performed at every startup and the script must be run as Administrator for the first time.
- Есть Python скрипт, сделать чтобы он висел в процессах
- Добавить его в стартап
Мне нужно в самом python скрипте. Т.е чтобы при запуске скрипта он сам добавился в автозагрузку, и висел в процессах.
windows От 7 и старше.
Прошу помощи.
jfs
51.6k11 золотых знаков105 серебряных знаков302 бронзовых знака
задан 9 фев 2017 в 20:01
Pavel DurmanovPavel Durmanov
5,6083 золотых знака20 серебряных знаков43 бронзовых знака
3
-
Чтобы скрипт висел в процессах необходимо, чтобы он не завершался после запуска. Например, содержал бесконечный цикл
import time while True: # your code here # задержка, чтобы не перегружать процессор time.sleep(5)
-
Одним из вариантом добавления Python-скрипта в автозапуск является размещение служебного .cmd-скрипта в папке Автозагрузки (
Пуск
—>Все программы
—>Автозагрузка
). Расположенный там исполняемый файл будет запускаться при старте системы.
Пример скриптаrem изменение рабочего каталога скрипта с папки автозагрузки на папку Python-скрипта pushd pathtoscriptfolder rem вызов Python-скрипта start python script_name.py
rem возвращение рабочего каталога обратно
popd
У скрипта можно создать ярлык и вынести его в удобное место.
insolor
44.1k15 золотых знаков52 серебряных знака92 бронзовых знака
ответ дан 10 фев 2017 в 6:13
3
Добавление скрипта Python при запуске Windows в основном означает, что скрипт Python будет запускаться при загрузке Windows. Это можно сделать с помощью двухэтапного процесса —
Шаг №1: Добавление скрипта в папку автозагрузки Windows
После загрузки Windows запускается (эквивалент двойного щелчка) все приложение, находящееся в его стартовом каталоге.
Адрес:
C:Userscurrent_userAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup
По умолчанию папка AppData в текущем_пользователе скрыта, поэтому разрешите скрытым файлам получить ее и вставьте ярлык сценария в указанный адрес или сам сценарий. Также для файлов .PY по умолчанию должна быть установлена среда IDE python, иначе сценарий может открыться как текст вместо выполнения.
Шаг № 2: Добавление скрипта в реестр Windows
Этот процесс может быть рискованным, если не будет выполнен должным образом, он включает в себя редактирование ключа реестра Windows HKEY_CURRENT_USER из самого скрипта python. Этот реестр содержит список программ, которые должны запускаться после входа пользователя в систему. точно так же, как некоторые приложения, которые появляются при запуске Windows, потому что вызывают изменение в реестре и добавляют к нему свой путь к приложению.
Путь к реестру:
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun
Ниже приведен код Python:
import
winreg as reg
import
os
def
AddToRegistry():
pth
=
os.path.dirname(os.path.realpath(__file__))
s_name
=
"mYscript.py"
address
=
os.join(pth,s_name)
key
=
HKEY_CURRENT_USER
key_value
=
"SoftwareMicrosoftWindowsCurrentVersionRun"
open
=
reg.OpenKey(key,key_value,
0
,reg.KEY_ALL_ACCESS)
reg.SetValueEx(
open
,
"any_name"
,
0
,reg.REG_SZ,address)
reg.CloseKey(
open
)
if
__name__
=
=
"__main__"
:
AddToRegistry()
Примечание. В этот сценарий можно добавить дополнительные коды, чтобы задача выполнялась при каждом запуске, и сценарий должен запускаться от имени администратора в первый раз.
Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.
Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение — базовый уровень.
Appending a Python script to windows start-up basically indicates the python script will run as the windows boots up. This can be accomplished by two step processes —
Step #1: Appending or Adding script to windows Startup folder
After booting up of the windows, it executes (equivalent to double-clicking) all the application present in its startup folder or directory.
Address
C:Userscurrent_userAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup
By default, the AppData directory or folder under the current_user is hidden that enable hidden files to get it and paste the shortcut of the script in the given address or the script itself. Besides this the .PY files default must be set to python IDE else the script may end up opening as a text instead of executing.
Step #2: Appending or adding script to windows Registry
This process may be risky if not accomplished properly, it includes editing the windows registry key HKEY_CURRENT_USER from the python script itself. This registry consists of the list of programs that must execute once the user Login. Registry Path−
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun
Below is the Python code
# Python code to append or add current script to the registry # module to modify or edit the windows registry importwinreg as reg1 importos
defAddToRegistry() −
# in python __file__ is denoeted as the instant of # file path where it was run or executed # so if it was executed from desktop, # then __file__ will be # c:userscurrent_userdesktop pth1 =os.path.dirname(os.path.realpath(__file__)) # Python file name with extension s_name1="mYscript.py" # The file name is joined to end of path address address1=os.join(pth1,s_name1) # key we want to modify or change is HKEY_CURRENT_USER # key value is SoftwareMicrosoftWindowsCurrentVersionRun key1 =HKEY_CURRENT_USER key_value1 ="SoftwareMicrosoftWindowsCurrentVersionRun" # open the key to make modifications or changes to open=reg1.OpenKey(key1,key_value1,0,reg1.KEY_ALL_ACCESS) # change or modifiy the opened key reg1.SetValueEx(open,"any_name",0,reg1.REG_SZ,address1) # now close the opened key reg1.CloseKey(open) # Driver Code if__name__=="__main__": AddToRegistry()
Как запустить python скрипт при старте Windows?
-
Вопрос заданболее трёх лет назад
-
6143 просмотра
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@dimonchik2013
non progredi est regredi
Панель управления — администрирование — планировщик заданий
все пути — абсолютные, в т.ч. к Питону
Как я понимаю, надо добавить файл (или ярлык) скрипта в эту папку:
C:Documents and SettingsAll UsersStart MenuProgramsStartup
Источник инфы
Комментировать
pyinstaller`ом в exe, затем в автозапуск или через планировщик
Похожие вопросы
-
Показать ещё
Загружается…
05 февр. 2023, в 21:58
2000 руб./за проект
05 февр. 2023, в 21:43
2000 руб./за проект
05 февр. 2023, в 21:04
500000 руб./за проект
Минуточку внимания
Главная страница » Автозапуск программ на python
Автор Admin На чтение 1 мин Просмотров 267 Опубликовано 30.03.2022
Автозапуск программ на python. В видео разберём, как добавить программу написанную на python и не только в автозагрузку.
Мой Telegram канал
Admin
Профили автора
Добавить комментарий
Имя *
Email *
Комментарий
Сохранить моё имя, email и адрес сайта в этом браузере для последующих моих комментариев.
Вам также может понравиться
Работа в Word с помощью Python
В видео научимся работать в Word с помощью Python.
0127
Расшифровка хэша md5 с помощью python
В видео научимся расшифровывать хэш md5 с помощью python.
0145
Добавление текста на изображение с помощью python opencv
В видео научимся добавлять текст на изображения с помощью
0132
Определитель лиц на python
В видео научимся получать определять лица на фото с
0109
На чтение 2 мин Просмотров 570 Опубликовано 04.10.2017
Содержание
- 1. Простой python-scrypt
- 2. Создание файла сервиса.
- 3. Включение нового добавленного сервиса.
- 4. Запуск/Остановка/Статус сервиса
Иногда требуется какой-то скрипт или программу запускать как системный сервис. Это можно легко провернуть, если в вашем дистрибутиве используется система инициализации и управления демонами — systemd.
Для примера, я создам простейший python-скрипт который будет слушать 9988 порт и добавлю его в автозагрузку при старте операционной системы.
1. Простой python-scrypt
sudo nano /usr/bin/dummy_service.py
Код скрипта:
#!/usr/bin/python3 import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind(("localhost", 9988)) s.listen(1) while True: conn, addr = s.accept() data = conn.recv(1024) conn.close() my_function_that_handles_data(data)
2. Создание файла сервиса.
Теперь создадим файл сервиса для с помощью которого расскажем systemd что нам требуется. Файл должен иметь расширение .service и находиться в директории /lib/systemd/system/
sudo nano /lib/systemd/system/dummy.service
Добавим информацию о нашем сервисе (можете изменить местоположение скрипта и описание сервиса):
[Unit] Description=Dummy Service After=multi-user.target Conflicts=getty@tty1.service [Service] Type=simple ExecStart=/usr/bin/python3 /usr/bin/dummy_service.py StandardInput=tty-force [Install] WantedBy=multi-user.target
Мне кажется из содержимого всё и так понятно — какая строка и за что отвечает.
3. Включение нового добавленного сервиса.
Вы добавили, наконец-то, ваш сервис в систему. теперь необходимо перезапустить демон systemctl чтобы он прочел новый файл. Каждый раз как вы вносите изменения в .service файлы вам нужно перезапустить демон.
sudo systemctl daemon-reload
Теперь включим запуск сервиса при загрузке системы, и запустим сам сервис.
sudo systemctl enable dummy.service sudo systemctl start dummy.service
4. Запуск/Остановка/Статус сервиса
В конце проверим статус нашего нового сервиса:
sudo systemctl status dummy.service
Проверим что наш python-скрипт слушает нужный нам порт:
sudo lsof -i | grep 9988
Команды для запуска, остановки и перезапуска сервиса:
sudo systemctl stop dummy.service #Для остановки сервиса sudo systemctl start dummy.service #Для запуска сервиса sudo systemctl restart dummy.service #Для перезапуска сервиса
( 1 оценка, среднее 5 из 5 )
Ychenyi 38 / 39 / 7 Регистрация: 13.11.2020 Сообщений: 678 |
||||
1 |
||||
06.03.2021, 16:35. Показов 13377. Ответов 24 Метки нет (Все метки)
У меня есть программа (выводит просто пустое окно), скомпилировал в исполняемый файл с помощью pyinstaller
__________________
0 |
4036 / 2978 / 1074 Регистрация: 21.03.2016 Сообщений: 7,504 |
|
06.03.2021, 16:43 |
2 |
Решение
а как сделать так, чтобы если оно было активно а как оно может быть активно при перезапуске? процесс то будет убит.
1 |
38 / 39 / 7 Регистрация: 13.11.2020 Сообщений: 678 |
|
06.03.2021, 16:44 [ТС] |
3 |
а как оно может быть активно при перезапуске? процесс то будет убит. тут я имел ввиду, что если прога активна была ДО перезапуска, то как сделать так, чтобы и после него она включилась самостоятельно
0 |
4036 / 2978 / 1074 Регистрация: 21.03.2016 Сообщений: 7,504 |
|
06.03.2021, 16:48 |
4 |
выше описал алгоритм перезапуска
0 |
38 / 39 / 7 Регистрация: 13.11.2020 Сообщений: 678 |
|
06.03.2021, 16:49 [ТС] |
5 |
Semen-Semenich, а можно ли это сделать в коде как нибудь??
0 |
5403 / 3827 / 1214 Регистрация: 28.10.2013 Сообщений: 9,554 Записей в блоге: 1 |
|
06.03.2021, 16:52 |
6 |
без закидывания в автозапуск? Открой для себя реестр windows, где тоже есть автозапуск и туда также можно записывать любые свои данные. Собственно, приложения на windows так и поступают, сохраняя туда все что им нужно для работы. Ну а если у тебя не windows, то ты и так знаешь как планируют запуск приложения в линуксе (или не знаешь?).
1 |
38 / 39 / 7 Регистрация: 13.11.2020 Сообщений: 678 |
|
06.03.2021, 16:54 [ТС] |
7 |
Garry Galler, Semen-Semenich, то бишь мне просто нужно файл.exe закинуть туда и он будет каждый раз открываться при запуске ПК или только тогда, когда файл.exe будет убит при перезапуске а не закрыт?
0 |
5403 / 3827 / 1214 Регистрация: 28.10.2013 Сообщений: 9,554 Записей в блоге: 1 |
|
06.03.2021, 17:05 |
8 |
то бишь мне просто нужно файл.exe закинуть туда Нет Ты должен написать код. Реестр это не папка… и даже не мамка.
0 |
4036 / 2978 / 1074 Регистрация: 21.03.2016 Сообщений: 7,504 |
|
06.03.2021, 17:06 |
9 |
Garry Galler, просто прогу в автозапуск ему не катит. я так понял если прога работала и комп перезапустили то и прога должна запуститься а если не работала то и не должна. автозапуск будет ее запускать постоянно.
1 |
Ychenyi 38 / 39 / 7 Регистрация: 13.11.2020 Сообщений: 678 |
||||
06.03.2021, 17:45 [ТС] |
10 |
|||
Garry Galler, код в этом же файле, где и основной код? Добавлено через 11 секунд
просто прогу в автозапуск ему не катит. я так понял если прога работала и комп перезапустили то и прога должна запуститься а если не работала то и не должна. автозапуск будет ее запускать постоянно. все верно Добавлено через 16 минут
и при закрытии вашей проги а как это именно в коде проверить?? Добавлено через 18 минут Код else ?
0 |
3679 / 2259 / 490 Регистрация: 07.11.2019 Сообщений: 3,815 |
|
06.03.2021, 17:46 |
11 |
РешениеSemen-Semenich, такой вариант:
1 |
38 / 39 / 7 Регистрация: 13.11.2020 Сообщений: 678 |
|
06.03.2021, 17:48 [ТС] |
12 |
а хотя, при первом запуске там же пустая строка, и поэтому он даже не откроется Добавлено через 1 минуту
0 |
Garry Galler 5403 / 3827 / 1214 Регистрация: 28.10.2013 Сообщений: 9,554 Записей в блоге: 1 |
||||
06.03.2021, 17:56 |
13 |
|||
а как сделать так чтобы она себя туда записала и удалила?
2 |
Semen-Semenich 4036 / 2978 / 1074 Регистрация: 21.03.2016 Сообщений: 7,504 |
||||
06.03.2021, 17:57 |
14 |
|||
если окно закрыть крестиком то в файле будет 1 а если убить процесс то в файле будет 0. теперь пишете скрипт который читает этот файл и если там 1 то запускает этот. скрипт прописываете в автозапуск
1 |
5403 / 3827 / 1214 Регистрация: 28.10.2013 Сообщений: 9,554 Записей в блоге: 1 |
|
06.03.2021, 18:05 |
15 |
Ну или как у Semen-Semenich, что почти тоже самое, только через оконные события.
теперь пишете скрипт который читает этот файл и если там 1 то запускает этот. скрипт прописываете в автозапуск А зачем такие сложности? Сама прога и должна писать себя в реестр и удалять себя же. Или я не понял?
0 |
4036 / 2978 / 1074 Регистрация: 21.03.2016 Сообщений: 7,504 |
|
06.03.2021, 18:09 |
16 |
Garry Galler, я тоже сразу ваш вариант не понял. получается при запуске прога прописывается в автозапуск если прога завершена корректно то удаляет себя из автозапуска. так конечно проще. просто с таким еще не сталкивался и не в курсе про atexit и написал свой велосипед. пойду изучать этот модуль.
0 |
194 / 160 / 41 Регистрация: 13.05.2019 Сообщений: 828 |
|
06.03.2021, 18:11 |
17 |
Кидай экзешник в папку по этому пути: C:UsersuserAppDataRoamingMicrosoftWindowsSt art MenuProgramsStartup
0 |
38 / 39 / 7 Регистрация: 13.11.2020 Сообщений: 678 |
|
06.03.2021, 18:15 [ТС] |
18 |
Matrix3007, и все??
0 |
194 / 160 / 41 Регистрация: 13.05.2019 Сообщений: 828 |
|
06.03.2021, 18:23 |
19 |
Ychenyi, Я не пробовал. Попробуй, потом отпишись.
0 |
Garry Galler 5403 / 3827 / 1214 Регистрация: 28.10.2013 Сообщений: 9,554 Записей в блоге: 1 |
||||
06.03.2021, 18:43 |
20 |
|||
Решение
Добавлено через 2 минуты
1 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
06.03.2021, 18:43 |
20 |
Осуществить данную задачу можно двумя путями, первый состоит в том, чтобы записать значение в реестр (HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun), здесь подробно описан данный метод. Однако при этом нам будет необходимо разрешение на запись в реестр, и чтобы его получить придется постараться.
Второй путь проще и не требует особых привилегий программе, для этого необходимо создать ярлык программы в C:UsersUserNameAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup (путь для Windows 7).
Ниже показан код, позволяющий это сделать, при этом создается ярлык на исполняемый файл и сохраняется в выше указанную папку, и при желании его от туда можно убрать.
import winshell
import os
import sysdef 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 :
passdef 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.