Autohotkey写入从文本文件中读取的文本

时间:2016-07-06 17:35:06

标签: autohotkey

我希望我的脚本能够读取包含intiger的文本文件,并通过键盘写出这个数字,而实际上却触摸它,但是因为没有软件,所以我很难理解autohotkey。拥有一些C#知识这就是我所拥有的:

FileRead, OutputVar, answertext.txt
sleep, 3000
;MyString = %OutputVar%
MyString = 16807

Loop, Parse, MyString

{

if (%A_LoopField% = -) 
{
Send, {SC00C}
}

if (%A_LoopField% = 0) 
{
Send, {SC00B}
}

if (%A_LoopField% = 1) 
{
Send, {SC002}
}

if (%A_LoopField% = 2) 
{
Send, {SC003}
}

if (%A_LoopField% = 3) 
{
Send, {SC004}
}

if (%A_LoopField% = 4) 
{
Send, {SC005}
}

if (%A_LoopField% = 5) 
{
Send, {SC006}
}

if (%A_LoopField% = 6) 
{
Send, {SC007}
}

if (%A_LoopField% = 7) 
{
Send, {SC008}
}

if (%A_LoopField% = 8) 
{
Send, {SC009}
}

if (%A_LoopField% = 9) 
{
Send, {SC00A}
}
}  
exit

现在这段代码开始了,但它始终是0,而不是其他,如果MyString = -1234,则会出错。

1 个答案:

答案 0 :(得分:0)

我将在这里提供一些关于改进AutoHotkey脚本的说明,以及它的修订版本。

你的'如果'对于大多数字符串,行应该是这样的,带双引号,没有百分号:

if (A_LoopField = "a")

对于数字,双引号是可选的:

if (A_LoopField = "1")

if (A_LoopField = 1)

但从根本上说,你的脚本只需几行:

FileRead, OutputVar, answertext.txt
sleep, 3000
;MyString = %OutputVar%
MyString = 16807
Send {Raw}%MyString%

您可能更喜欢包含密钥延迟,以减慢文本的发送速度:

MyString = 16807
SetKeyDelay, 500
Send {Raw}%MyString%

发送文本的其他方法可能是:

Clipboard := MyString
SendInput ^v

或者在不使用剪贴板的情况下将文本插入编辑控件(例如记事本中):

Control, EditPaste, %MyString%, Edit1, ahk_class Notepad

或者在不使用剪贴板的情况下再次设置编辑控件的全部内容:

ControlSetText, Edit1, %vText%, ahk_class Notepad