Как получать уведомления о всплывающем окне Print-job-window в Windows?
Мы все знакомы с окном печати (например, при нажатии ctrl+p или нажатии кнопки печати в некоторых программах). Есть ли способ получать уведомления [ловить любой сигнал] (когда пользователь пытается что-то напечатать), когда всплывающее окно печати _ в Python? Я попытался с помощью приведенного ниже кода узнать, какое окно в данный момент активно, но я предполагаю, что окно печати не принадлежит к категории активных окон, потому что ничего не происходит.
def all_apps_running(self):
""" looks throgh wind32processes to find all Foreground running apps """
try:
hwnd = ctypes.windll.user32.GetForegroundWindow()
_, pid = win32process.GetWindowThreadProcessId(hwnd)
exe = ""
for p in self.c.query('SELECT Name FROM Win32_Process WHERE ProcessId = %s' % str(pid)):
exe = p.Name
break
except:
return None
else:
return exe
...
Я нашел некоторую информацию о событии принтера (например, приведенный ниже код, я пробовал больше), но это работает после того, как пользователь отправляет какое-либо задание на печать на принтер, и мне нужно показать пользователю уведомление, точно так же, как появится окно печати.
if __name__ == "__main__":
job = {}
while True:
printer_name = win.GetDefaultPrinter()
hprinter = win.OpenPrinter(printer_name)
job_tuple = win.EnumJobs(hprinter, 0, -1, 1)
for job_info in job_tuple:
job = win.GetJob(hprinter, job_info["JobId"], win.JOB_INFO_1)
break
Итак, очевидно, у нас есть 3 типа категории Print-Popup-Window:
- Диалоговое окно печати Microsoft Windows по умолчанию
- Пользовательский диалог печати любого программного обеспечения (например, в Word)
- Браузерное приложение для предварительного просмотра (как в Google Chrome)
Решение для части 1 из следующего сообщения о переполнении стека:получить текст из всплывающего окна . Это требует лишь некоторой модификации:
import time, win32gui
while True:
window = win32gui.GetForegroundWindow()
title = win32gui.GetWindowText(window)
if title == "Print":
do stuff
для 2 и особенно 3 у меня до сих пор нет идеи