鱼C论坛

 找回密码
 立即注册
查看: 3966|回复: 13

如何模拟按键,实现ctrl+C和ctrl+V的复制粘贴功能

[复制链接]
发表于 2018-8-15 21:09:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
求解:模拟按键实现ctrl+C复制文本出错,而ctrl+V粘贴文本则正常
先尝试使用pyautogui模块,出错

模拟按键ctrl C报错.png 模拟按键ctrl v正常,且可以粘贴出文本.png

再尝试使用win32模块,还是不行

模拟按键ctrl C报错_01.png 模拟按键ctrl v正常,且可以粘贴出文本_01.png
求大神指导一下,多谢!

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-16 09:39:19 | 显示全部楼层
完全没用过这个模块,你的Ctrl +C出错信息也没出现,貌似是出现了keyboardinterrupt
那问题来了,我们在命令行结束程序的时候是不是就是输入Ctrl+C呢

我只想到这里

点评

我跟你几乎同时回答了一个帖子……  发表于 2018-8-16 09:39
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-8-16 09:41:42 | 显示全部楼层
塔利班 发表于 2018-8-16 09:39
完全没用过这个模块,你的Ctrl +C出错信息也没出现,貌似是出现了keyboardinterrupt
那问题来了,我们在命 ...

是呢,,哈哈~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-16 13:10:52 | 显示全部楼层
需要用到剪切板模块.
import win32clipboard as w#剪切板函数
def setText(aString):
    w.OpenClipboard()
    w.EmptyClipboard()
    w.SetClipboardData(win32con.CF_TEXT, aString.encode('gbk'))
    w.CloseClipboard()
if __name__=="__main__":
    setText("我爱小强工作室")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-17 10:01:01 | 显示全部楼层

我懂了你的意思,模拟按键没有问题,但python里ctrl+C是强制结束程序,这和Windows的ctrl+C冲突了。那应该怎样把文本复制进剪切板呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-17 10:03:08 | 显示全部楼层
正直的阿康 发表于 2018-8-17 10:01
我懂了你的意思,模拟按键没有问题,但python里ctrl+C是强制结束程序,这和Windows的ctrl+C冲突了。那应 ...

真的没用过这个模块。对原复制内容有要求没,要不要试试Ctrl+X
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-17 10:07:29 | 显示全部楼层
小强工作室 发表于 2018-8-16 13:10
需要用到剪切板模块.
import win32clipboard as w#剪切板函数
def setText(aString):

你这个方法是实现把一个设定好的文本传入剪切板,而我需要的功能是先选中一段文本,然后运行程序,这段被选中的文本就进入了剪切板,这需要怎么做呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-17 10:14:22 | 显示全部楼层
塔利班 发表于 2018-8-17 10:03
真的没用过这个模块。对原复制内容有要求没,要不要试试Ctrl+X

好主意!,ctrl+X现在可以满足我的需求。但把文本复制进剪切板肯定是可以python实现的,是不是可以绕过ctrl+C来实现呢?大神研究一下教教我啊。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-17 10:30:34 | 显示全部楼层
正直的阿康 发表于 2018-8-17 10:14
好主意!,ctrl+X现在可以满足我的需求。但把文本复制进剪切板肯定是可以python实现的,是不是可以绕过ctrl ...

有种方法是修改interrupt-execution快捷键,然后你以后得记得这个按键组合
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-17 10:40:39 | 显示全部楼层
帮你搜了下pyperclip,pip安装下

1.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-17 16:57:56 | 显示全部楼层
塔利班 发表于 2018-8-17 10:40
帮你搜了下pyperclip,pip安装下

这个模块是我帖子里有写的,一楼,我试过,不能实现复制,可以粘贴
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-17 17:05:27 | 显示全部楼层
本帖最后由 塔利班 于 2018-8-17 17:34 编辑
正直的阿康 发表于 2018-8-17 16:57
这个模块是我帖子里有写的,一楼,我试过,不能实现复制,可以粘贴


那还是改快捷键吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-20 08:03:30 | 显示全部楼层
正直的阿康 发表于 2018-8-17 10:07
你这个方法是实现把一个设定好的文本传入剪切板,而我需要的功能是先选中一段文本,然后运行程序,这段被 ...

用python文本函数,读取内容,然后在用剪切板函数。以前,我的想法和你一样,纠结复制和粘贴,建议:你学习一下python文本函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 18:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表