Python фоновый процесс, который переворачивает обои, когда пользователь меняет их - PullRequest
0 голосов
/ 18 марта 2020

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

    import ctypes

    path = r"C:\Users\..."    #Actual path to the image
    res = ctypes.windll.user32.SystemParametersInfoW(20, 0, path, 0)

Я также успешно преобразовал их в исполняемый файл без консоли с помощью pyinstaller.

Теперь я бы хотел, чтобы он работал так, чтобы он «прослушивает» такие события, как изменение обоев пользователем, а затем запускает этот код, чтобы отменить изменение. Я предполагаю, что это можно сделать с помощью библиотеки ctype в python, но я не очень разбираюсь в ее использовании. Я даже не уверен, что это можно сделать в python, или я должен даже использовать события? Есть ли лучший способ?

1 Ответ

0 голосов
/ 18 марта 2020

Это очень простой молодой человек;

Просто сделайте

> import ctypes     
       while 3>2:
>      path = r"C:\Users\..."    #Actual path to the image
>      res = ctypes.windll.user32.SystemParametersInfoW(20, 0, path, 0)

И, кстати, попробуйте запустить его; enter image description here

И если вы решили запустить .exe, который я не рекомендую из-за открывающегося и легко закрываемого окна, вы, конечно, можете;

Вы можете создать запланированное задание, выполнив следующие действия (задание будет выполнено, когда P C заблокируется):

Open Task Scheduler
Click on Create task... under Action (menu bar)
Name the task on the General tab
Add a new trigger on the tab Triggers
    Begin the task: On workstation lock (drop-down menu on top of the New Trigger window)
Finally, add a new action on the Actions tab (you just have to browse for the program)

Из-за этого я не рекомендую его на другой стороне с параметром python на рисунке выше, если вы используете это, вам не нужно это делать, и пользователь даже не заметит, что задание выполняется позади. Это более хитрый и эффективный способ. Я - этический хакер, и я сделал то, что вы пытаетесь сделать, и хорошо, Удачи выше были некоторые советы.

И, конечно, вы хотели бы запустить программу, когда компьютер запускается для этого, просто добавьте это в вся ваша программа как;

    import getpass
    import os
    USER_NAME = getpass.getuser()


    def add_to_startup(file_path=""):
        if file_path == "":
            file_path = os.path.dirname(os.path.realpath(__file__))
        bat_path = r'C:\Users\%s\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup' % USER_NAME
        with open(bat_path + '\\' + "open.bat", "w+") as bat_file:
            bat_file.write(r'start "" %s' % file_path)
    add_to_startup(__file__)

    import ctypes
    while 3>2:
        path = r"C:\Users\..."    #Actual path to the image
        res = ctypes.windll.user32.SystemParametersInfoW(20, 0, path, 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...