Почему автоматический запуск моего python скрипта при запуске не работает? - PullRequest
1 голос
/ 29 мая 2020

Я хочу добавить сценарий Python к windows, который запускается при каждом запуске, чтобы сценарий python запускался при загрузке windows, каждый раз создавая файл hello.txt. Я столкнулся с этой проблемой:

Когда я запускаю этот файл вручную, он отлично работает, создавая файл hello.txt. Затем я удаляю файл hello.txt и перезапускаю P C, чтобы проверить, правильно он работает или нет. И тогда это не сработало, т.е. он не создал этот файл сейчас!

Где я не прав?

Вот мой код:

import winreg as reg 
from winreg import HKEY_CURRENT_USER 
import os              

def AddToRegistry(): 

    def my_funct():
        with open(r"C:\Users\username\Desktop\hello.txt", "w+") as test_file:
            test_file.write(r'start here')

    address = my_funct()

    # key we want to change is HKEY_CURRENT_USER  
    # key value is Software\Microsoft\Windows\CurrentVersion\Run 
    key = HKEY_CURRENT_USER
    key_value = "Software\Microsoft\Windows\CurrentVersion\Run"

    # open the key to make changes to 
    openfile = reg.OpenKey(key,key_value,0,reg.KEY_ALL_ACCESS) 

    # modifiy the opened key 
    reg.SetValueEx(openfile,"Testingit",0,reg.REG_SZ,address) 




if __name__=="__main__": 
    AddToRegistry()

Но когда я создаю ту же программу с двумя разными файлами, она работает:

import winreg as reg 
from winreg import HKEY_CURRENT_USER 
import os              

def AddToRegistry(): 

    # name of the python file with extension 
    my_funct = r"C:\Users\intel\Desktop\Python programs\testing.py"
    # joins the file name to end of path address 
    address = my_funct

    # key we want to change is HKEY_CURRENT_USER  
    # key value is Software\Microsoft\Windows\CurrentVersion\Run 
    key = HKEY_CURRENT_USER
    key_value = "Software\Microsoft\Windows\CurrentVersion\Run"

    # open the key to make changes to 
    openfile = reg.OpenKey(key,key_value,0,reg.KEY_ALL_ACCESS) 

    # modifiy the opened key 
    reg.SetValueEx(openfile,"Testing_it",0,reg.REG_SZ,address) 



# Driver Code 
if __name__=="__main__": 
    AddToRegistry()

Testing.py

with open(r"C:\Users\intel\Desktop\hello.txt", "w+") as test_file:
    test_file.write(r'start')

1 Ответ

0 голосов
/ 30 мая 2020

Я разобрался сам и теперь решено! Вместо добавления testing.py к winreg я добавляю сам файл, т.е. background.py, в реестр, и теперь он работает.

Я просто изменил имя файла и добавил к нему функцию. Вот как:

import winreg as reg 
from winreg import HKEY_CURRENT_USER 
import os        

def AddToRegistry(): 

    # name of the python file with extension 
    my_funct = r"C:\Users\intel\Desktop\Python programs\background.py"

    # joins the file name to end of path address 
    address = my_funct

    def the_task():    
        with open(r"C:\Users\intel\Desktop\hello.txt", "w+") as test_file:
            test_file.write(r'start')

    the_task() 

    # key we want to change is HKEY_CURRENT_USER  
    # key value is Software\Microsoft\Windows\CurrentVersion\Run 
    key = HKEY_CURRENT_USER
    key_value = "Software\Microsoft\Windows\CurrentVersion\Run"

    # open the key to make changes to 
    openfile = reg.OpenKey(key,key_value,0,reg.KEY_ALL_ACCESS) 

    # modifiy the opened key 
    reg.SetValueEx(openfile,"Testing_it",0,reg.REG_SZ,address) 

    inputs = input(">> ")


# Driver Code 
if __name__=="__main__": 
    AddToRegistry()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...