почему подпроцесс запускает «дополнительное» приложение? - PullRequest
0 голосов
/ 19 декабря 2018

Я написал скрипт на Python для обнаружения нажатия клавиши Print Screen и запуска Snipping Tool.Сценарий использует subprocess.call для обработки запуска приложения.

Проблема, с которой я сталкиваюсь, заключается в том, что, когда я закончу с Snipping Tool и закрою приложение, я получу «дополнительное» приложение, которое запускается.Например, если я взял фрагмент презентации PowerPoint, то при закрытии Snipping Tool я получаю новый / пустой экземпляр Power Point, запускаемый автоматически.Я не хочу, чтобы это произошло, и просто хочу, чтобы инструмент Snipping Tool закрывался без каких-либо дополнительных действий.

Может кто-нибудь помочь объяснить, что мне не хватает в моем коде?

# https://stackoverflow.com/questions/24072790/detect-key-press-in-python
# https://pypi.org/project/keyboard/
# https://github.com/boppreh/keyboard#api

import keyboard #pip install keyboard
import time
import subprocess

while True:
    if keyboard.is_pressed('print screen'):
        subprocess.call(r'SnippingTool.exe') # blocking; waits until open
        keyboard.press_and_release('ctrl+N')
    #elif keyboard.is_pressed('ctrl+print screen'): # not recognizing "print screen" here
    elif keyboard.is_pressed('ctrl+esc'):        
        print 'killing it now'
        break
    else:
        time.sleep(0.1)

1 Ответ

0 голосов
/ 19 декабря 2018

Я предполагаю (и я не на Windows), но я думаю, что subprocess.call ждет, пока вы не закончили с Snipping Tool, и поэтому keyboard.press_and_release('ctrl+N') собирается в PowerPoint.

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