如何让pyautogui将热键转换为变量

时间:2018-08-16 02:16:42

标签: python pyautogui

我正在尝试让pyautogui复制一个数字,然后将该数字转换为变量。这是我的代码,试图实现这一目标,但仅返回“ none”。我该如何解决?我希望它复制数字,然后将test1转换为该数字。

pyautogui.mouseDown()
pyautogui.moveRel(100, 0) #####FIND DOLLAR AMOUNT MOVE
pyautogui.mouseUp()
pyautogui.hotkey('ctrl', 'c')
test1 = pyautogui.hotkey('ctrl', 'v')
print(test1)

2 个答案:

答案 0 :(得分:1)

pyautogui不会使用方法hotkey()不返回值,因此,当您尝试保存输出时,只捕获了该方法默认情况下返回的“无”。 / p>

如果要收集刚刚复制的内容,则需要将计算机的剪贴板作为目标。如果您正在运行Windows,则这相对简单。只需使用Powershell!

import subprocess
clipboard = subprocess.check_output("powershell.exe Get-Clipboard", stderr=subprocess.STDOUT, shell=True)
clipboard = clipboard.decode() #Subprocess.check_output() returns bytes, so if you want to handle it like a string, this is needed to "decode" it.

如上所述,我只是使用Windows Powershell执行命令Get-Clipboard,该命令返回剪贴板中所有内容的字符串表示形式。使用这种检索方法的唯一缺点是,您必须等待计算机在后台打开Powershell窗口并执行命令。

答案 1 :(得分:1)

Hampus Larsson是对的:要收集数据,您需要使用剪贴板。一种替代方法是从那里使用pyperclip模块和paste方法。

例如:

import pyperclip

pyautogui.hotkey('ctrl', 'c')
test1 = pyperclip.paste()