从程序运行击键

时间:2016-05-06 17:45:41

标签: ruby windows keystrokes

我正在编写一个程序来自动化电子邮件流程,并想知道是否有办法在程序中运行击键?

例如说我有这个字符串:

str = "test"

并将其复制到文件中:

File.open('str.txt', 'w') { |s| s.puts(str }

之后我想使用CNTRL-A; CNTRL-C在文件上并复制信息,这是否可以在Ruby程序中使用而不使用外部gem?

操作系统:Windows 7

2 个答案:

答案 0 :(得分:2)

如果您无法安装gems但可以将ClipText.exe复制到当前目录,请执行此操作,然后在Ruby中运行此代码:

File.open('str.txt', 'w') { |s| s.puts(str }
`cliptext.exe from str.txt`

有关在Windows上执行命令的更严格方法,请参阅“How to execute Windows CLI commands in Ruby?”。

答案 1 :(得分:2)

如果您正在使用gem https://github.com/erinata/auto_click之后发送任意按键到其他应用程序。但是,如果您不能使用gems,那么您可以使用适当的命令行参数运行NirCmd(或its alternatives之一)以获得相同的结果。< / p>

例如:

# Tell the OS to bring up the Notepad window and give it the time
# to do so.
`nircmd win activate ititle notepad`
sleep 0.5
# Select all text in the Notepad window and copy it to the
# clipboard.
`nircmd sendkeypress ctrl+a`
`nircmd sendkeypress ctrl+c`