Чтение диалогового окна в Python - PullRequest
1 голос
/ 19 июля 2011

Я пытаюсь автоматизировать ежедневную рутину, которую я выполняю с использованием Python. Используя библиотеку win32gui, я смог поместить курсор в нужную позицию, щелкнуть мышью и отправить ключи. Во время этой задачи появляется несколько сообщений / диалоговых окон с вопросом «да» или «нет» на определенные вопросы. Я хотел бы иметь возможность прочитать вопрос в окне сообщения, но понятия не имею, как я буду подходить к нему. Спасибо

1 Ответ

1 голос
/ 04 августа 2011

Просто, чтобы дать вам одну возможность, вы можете скопировать все содержимое диалогового окна в буфер обмена, отправив Ctrl-C с помощью sendkeys, пока фокус находится на диалоге.Содержимое буфера обмена обычно будет выглядеть примерно так:

[Window Title]
Rename

[Content]
If you change a file name extension, the file might become unusable.

Are you sure you want to change it?

[Yes] [No]

win32clipboard из библиотеки pywin32 позволяет вам извлечь содержимое буфера обмена, чтобы вы могли анализировать текст и отвечать или делать что-либо ещеиначе вы должны сделать с ним:

import win32con
import win32clipboard

try:
    win32clipboard.OpenClipboard()
    text = win32clipboard.GetClipboardData(win32con.CF_TEXT)
    print(text)
except TypeError:
    print('Error: No text on the clipboard!')
finally:
    win32clipboard.CloseClipboard()

К сожалению, есть некоторые диалоги, которые не могут быть скопированы в буфер обмена, как это.Я не могу сказать вам причину, но одним из них является диалоговое окно «Подтверждение удаления» в Windows 7.

...