我是一个Python新手,正在尝试弄清楚如何让Python在调用程序时复制我所突出显示的任何文本。
我查看了此线程中发布的解决方案:将突出显示的文本复制到剪贴板,然后使用剪贴板将其附加到列表。
理论上,那里的所有内容都很有道理,但问题是当我运行程序时,似乎“pya.doubleClick(pya.position())”命令会取消我的突出显示!如果我将光标悬停在文本上方,则程序确实会成功突出显示给定单词,但我需要能够复制整个短语!
我想要实现的是能够突出显示屏幕上的任何文本(包括整个短语而不仅仅是特定单词),然后运行程序,结果突出显示的文本将通过程序传递。
我曾预计这将涉及到在突出显示文本时对“ctrl”+“c”功能进行某种自动化...但我无法弄清楚如何使其实际工作。
我正在Windows 10上使用Python 3.7.4。
以下是在我上面链接的线程中作为解决方案呈现的代码:
也许我的真正问题是我不知道如何在不取消当前高亮文本的情况下运行程序。目前,为了调用程序,我使用非常笨重的方法,即创建一个指向程序的快捷方式,然后在“属性”选项卡中为该快捷方式指定热键。
我查看了此线程中发布的解决方案:将突出显示的文本复制到剪贴板,然后使用剪贴板将其附加到列表。
理论上,那里的所有内容都很有道理,但问题是当我运行程序时,似乎“pya.doubleClick(pya.position())”命令会取消我的突出显示!如果我将光标悬停在文本上方,则程序确实会成功突出显示给定单词,但我需要能够复制整个短语!
我想要实现的是能够突出显示屏幕上的任何文本(包括整个短语而不仅仅是特定单词),然后运行程序,结果突出显示的文本将通过程序传递。
我曾预计这将涉及到在突出显示文本时对“ctrl”+“c”功能进行某种自动化...但我无法弄清楚如何使其实际工作。
我正在Windows 10上使用Python 3.7.4。
以下是在我上面链接的线程中作为解决方案呈现的代码:
import pyautogui as pya
import pyperclip # handy cross-platform clipboard text handler
import time
def copy_clipboard():
pyperclip.copy("") # <- This prevents last copy replacing current copy of null.
pya.hotkey('ctrl', 'c')
time.sleep(.01) # ctrl-c is usually very fast but your program may execute faster
return pyperclip.paste()
# double clicks on a position of the cursor
pya.doubleClick(pya.position())
list = []
var = copy_clipboard()
list.append(var)
print(list)
也许我的真正问题是我不知道如何在不取消当前高亮文本的情况下运行程序。目前,为了调用程序,我使用非常笨重的方法,即创建一个指向程序的快捷方式,然后在“属性”选项卡中为该快捷方式指定热键。