Попробуйте проверить, есть ли что-нибудь в буфере обмена

#python #python-3.x #pywin32

Вопрос:

Я ищу лучший способ проверить, есть ли что-то в буфере обмена, используя «pywin32».

например, я хочу очистить буфер обмена после нажатия «ctrl c», а затем проверить, пуста ли переменная «вывод» по-прежнему или нет. Если буфер обмена не пуст, макросы работают, но если буфер обмена пуст, он показывает следующую ошибку:

«Трассировка (последний последний вызов): Файл «E:DesktopPython_LearningCheck если эмпри script.py», строка 13, в выводе = win32clipboard.Ошибка типа GetClipboardData (): Указанный формат буфера обмена недоступен»

Я ничего не могу найти в Google, поэтому решаю спросить здесь (об одном слабом обучении кодированию), надеюсь, кто-нибудь поможет это исправить.

 `
import win32clipboard
import pyautogui as pya

win32clipboard.OpenClipboard()
output = win32clipboard.EmptyClipboard()
win32clipboard.CloseClipboard()

print(output)
pya.hotkey('ctrl', 'c')

win32clipboard.OpenClipboard()
output = win32clipboard.GetClipboardData()
win32clipboard.CloseClipboard()

if output is None:
    print("there is nothing")
else:
    print("There is something")

print(output)
`
 

Комментарии:

1. Я почти уверен, что функция EmptyClipboard() просто очищает буфер обмена

2. Я не уверен, но я думаю, что вы можете использовать оператор try/catch

Ответ №1:

Попробуйте это

 try:
    output = win32clipboard.GetClipboardData()
except TypeError:
    output = None
 

Я не знаю, как работает модуль win32clipboard, но я видел, как люди использовали с ним инструкцию try/except