如何使用R语言获取Windows剪贴板中的截图?
获取剪贴板中Prt Scr截图的可行方案
你之前用的方法完全不对——cat("\U2399")只是打印一个打印屏幕的符号,根本不会触发按键或读取剪贴板;keybd.press('/44')是按键码用错了,自然无效。下面给你分语言的解决思路:
R语言场景
- 触发Prt Scr按键:用
sendkeys包发送正确的按键指令library(sendkeys) sendkeys("{PRTSC}") Sys.sleep(0.5) # 必须等一下,给系统存截图到剪贴板的时间 - 读取剪贴板里的截图:用
clipr读取二进制数据再保存library(clipr) img_raw <- read_clipboard_raw() writeBin(img_raw, "my_screenshot.png")
Python语言场景(对应你用的KeyboardSimulator)
- 修正Prt Scr的按键码:Prt Scr的正确十六进制码是
0x2C,不是/44from KeyboardSimulator import keybd keybd.press(0x2C) keybd.release(0x2C) # 按键后必须释放,不然会一直处于按下状态 - 读取剪贴板截图:用
PIL的ImageGrab直接读取,比操作二进制更方便from PIL import ImageGrab import time time.sleep(0.5) # 同样要等系统处理截图 img = ImageGrab.grabclipboard() if img is not None: img.save("my_screenshot.png")
额外提醒
- 检查程序的剪贴板访问权限,尤其是macOS或Linux下,可能需要手动授权。
- 如果是截取活动窗口而不是全屏,把按键指令改成
{PRTSC}{ALT}(R)或者对应组合键(Python)即可。
内容的提问来源于stack exchange,提问作者Seb
相关产品推荐
相关产品推荐

