我的剪贴板中有一些东西,我想运行一个调用CTRL + V的python脚本,好像它是在键盘上按下的那样,并将剪贴板的内容粘贴到当前的焦点窗口(比如铬)。
任何想法怎么做?
答案 0 :(得分:1)
你有X-Y problem。
您要完成的是以编程方式从一个程序(您点击cntrl-V)获取数据并将其放入另一个任意程序(chrome)。
有两种方法可以做到:
<强>第一强>
您可以将程序设置为具有数据交换机制,例如系统管道或网络连接。这需要一些用于数据交换的API已经包含在程序中或访问源,因此您可以添加一个。交叉项目数据交换有非常具体的渠道,你不会试图绕过它们。程序A只能说
get_program_b().get_text_box().add(clip_board);
这将违反Process Isolaton,并且像Windows一样的操作系统明确写入以使其无法实现。有些程序旨在从其他程序中获取输入。
popen.open('mysql -e "ISNERT INTO table (a) VALUES ('4')")
Chrome不是其中一个程序,Chrome避免允许程序执行此操作,因为它可以成为程序执行目标的目标,例如,获取保存的密码或信用卡数据。或使用保存密码登录某个人的帐户并以别人的名义购买东西。
<强>第二强>
您可以尝试欺骗用户输入并完全像用户那样输入数据,因此Chrome不会知道差异。但欺骗用户很难做到并且故意这样做,因为它可以防止恶意脚本控制计算机并做坏事。 Windows制造商清楚地意识到欺骗输入是绕过允许的数据交换渠道的一种方法。所以windows制造商很难做到。您需要访问大多数系统资产,而大多数程序都不会被授予。至少一个程序必须在Windows上以管理员身份运行才能完成此任务,然后有一些库可以让你这样做。即便如此,我愿意打赌有更简单的方法来完成工作。在一台机器上,您可以访问任何东西,一切皆有可能。如果您没有管理员权限,那么在不知道系统中未修补的漏洞利用的情况下,这应该是完全不可能的。
<强>因此强>
您尝试做的事情违背了计算机旨在让您做的事情。如果我们有关于你想要完成什么的更多信息,也许这里的一些优秀人才可以提供帮助。达到你想要的最终结果不应该那么难。但是你做这件事的方式就像试图穿越大洋,当你只需要一艘船时。因为我的答案是 - 不要这样做,而不是Windows的设计工作方式。