是否可以使用AHK创建这样的宏?

时间:2013-01-13 02:32:36

标签: command-line macros autohotkey

我在MMORPG游戏中就像一个GM。我们的工作是报告使用作弊并将其送入监狱的人。但离开监狱区并不是很难,所以我们必须一次又一次地发送它们。我有一个loooong昵称列表(我有大约400个昵称要重复报告)所以它真的很无聊。

我想问的是,我对AHK一无所知。如果这种宏是可能的,我会做一个很好的研究来创建那个宏。但如果不可能,我甚至都不会尝试。

我需要的是什么;宏将按“确定”以激活聊天模式。然后会写“/ report -cheater nickname-”并记住存在400多个昵称,所以我需要为不同的昵称重复宏。在写完“/ report -cheater nickname-”后,Macro将按回车键。然后会弹出一个小聊天框。宏将单击该框,将写入报告原因,然后单击确认。然后会弹出另一个聊天框,说出“收到您的报告”之类的内容。宏也会点击确认。并且会为400多个绰号做出400+不同的原因。这有可能吗?只是想知道。不要求你创建这个宏。如果你回答这个问题,我会尝试自己做:D

感谢。

3 个答案:

答案 0 :(得分:0)

此脚本用于在Google上执行一系列搜索。搜索字符串存储在一个文本文件中并读入一个数组,然后根据按下{Tab}键(你可以自动重复)来逐个执行它们。

当脚本中断时,您可以再次启动它并给它一个(新的)起始编号,或者告诉它从1开始。

不完全是你想要的,但它给你很多起点。

#Persistent
#SingleInstance Force
#installKeybdHook
SetWorkingDir %A_ScriptDir%
TempDir = C:\Temp
Menu, Tray, Icon , %A_AhkPath%, 2, 1
TrayTip, JobSearch, Started, 1
SetTitleMatchMode, 2
TextCounter = 0
Return

+Launch_App1::
Run, Notepad %TempDir%\Google.txt
Return

Launch_App1:: ; vacatures Job Search
+CapsLock::
Restart:
MouseGetPos, XPos2, YPos2
XPos3 := 50
YPos3 := 100
IniRead, TextCounter, %TempDir%\GoogleCounter.ini, Counter, Nr

ArrayCount = 0
Loop, Read, %TempDir%\Google.txt   ; This loop retrieves each line from the file, one at a time.
{
    ArrayCount += 1  ; Keep track of how many items are in the array.
    Array%ArrayCount% := A_LoopReadLine  ; Store this line in the next array element.
}
MaxSearchCount = %ArrayCount%
TextCounter += 1
If (TextCounter > 1)
InputBox, TextCounter , Start, Number (1..%MaxSearchCount%),,,,,,,10,%TextCounter%  ; InputBox, OutputVar [, Title, Prompt, HIDE, Width, Height, X, Y, Font, Timeout, Default]
TextCounter += 0
IniWrite, %TextCounter%, %TempDir%\GoogleCounter.ini, Counter, Nr
SearchText:=Array%TextCounter%
MouseClick, left
gosub, SendNewSearch
Return

;=======================================================================================================================================
Browser_Favorites:: ; Search for next Vacature string (Vacatures)
CapsLock::
If (TextCounter = 0) ; Restart with previous script if Textcounter is set to 0
{
    GoSub,  Restart
    Exit
}
IniRead, TextCounter, %TempDir%\GoogleCounter.ini, Counter, Nr
TextCounter += 1
IniWrite, %TextCounter%, %TempDir%\GoogleCounter.ini, Counter, Nr
SearchText:=Array%TextCounter%
If (SearchText = "")
{
    TextCounter := 0
    IniWrite, %TextCounter%, %TempDir%\GoogleCounter.ini, Counter, Nr
    Send, ^{F4}
    SplashTextOff
    ExitApp
}

Sleep, 200
Send, {Home 2}
Sleep, 700
Send, {WheelUp 10}
Sleep, 400
gosub, SendNewSearch
Exit

SendNewSearch:
    MouseGetPos, XPos3 ,YPos3 
    SetTitleMatchMode, 2
    IfWinActive, Chrome
    {
    while (A_Cursor = "AppStarting")
        Sleep, 200 ; Continue

    Sleep, 100
    SplashTextOff
    MouseClick, left, %XPos2%,%YPos2%
    WinGetTitle, this_title, A
    IfInString, this_title, Google
    {
        Send, {Home}+{End}{DEL}%SearchText%{Enter}
    }
    ToolTip, Waiting....
    DisplayText = Nr%TextCounter%  %SearchText%
    Sleep, 500
    SplashTextOn, 200, 0,%DisplayText%
    WinMove, %DisplayText%, , 800, 25
    ToolTip
    ;MouseMove,(50),(500)
    MouseMove,%XPos3%,%YPos3%
    ClipBoard = %SearchText%
    }
Exit
Exit

+Browser_Favorites::
run, %TempDir%\Google.txt
Return

答案 1 :(得分:0)

有可能做到。您可以创建两个txt文件,其中包含+400个用户名和+400个不同原因的列表。宏可以逐个读取行,可以创建所需的所有内容,超过400次。

您需要this loop才能将来自txt文件的行写入数组,function中的循环用于使用PixelGetColor检查指定像素的预期颜色(http:// www .autohotkey.com / docs / commands / PixelGetColor.htm)用于检测按钮。您还可以使用PixelGetColor命令或AutoIt3 Window Spy(将随一起安装)来查看按钮的颜色。最后,您可以从这里开始编码(http://www.autohotkey.com/docs/)。

PS。抱歉,网站不允许我使用超过2个超链接。

答案 2 :(得分:0)

基本上你是在尝试编写一个输入类型的脚本,然后再输入一个字符列表?

你可以做的非常简单的事情就是创建一个.txt文件,其中包含你想要输入的所有内容(不包括输入,除了行之间),并创建一个像这样的宏:

#n::
Loop, Read, inputFile.txt
{
    Send {Enter}%A_LoopReadLine%{Enter}
}
return

基本上你运行宏并打开游戏,你可以开始输入输入,字符信息,输入,但按下Windows键和'n'键。然后宏将循环遍历'inputFile.txt'的每一行并激发输入一个输入,一行,然后输入。