autohotkey脚本中的多个热键命令

我试图编写一个脚本,它将使用一个autohotkey脚本根据热键命令执行下列操作之一:a)打开一个networking中特定(1的10)vnc连接,b)打开5(10 )将networking上的vnc连接分开,c)打开networking上的所有10个vnc连接。 脚本的每次迭代都会打开一个单独的连接到相关的主机。 我可以让项目“c”在命令上工作,但是项目(a)和(b)将会打开比我需要的更多的连接,并且我试图结束每个热键的结尾或退出。 我列出了以下(a)和(b)项的代码,因为这些代码适用于:

项目(a)和项目(b)的一部分[项目(b))重复x次]

^!c:: { Run, vnc-E4_6_3-x86_win32_viewer.exe, C:\Program Files (x86)\RealVNC\VNC4 Viewer WinWaitActive, VNC Viewer { Send Frankenstien-SubSystem-1 Send {enter} } WinWaitActive, Authentication Credentials { Send {Shift Down} Send {Tab} Send {Shift Up} Send <username> Send {Tab} Send <password> Send {enter} } Sleep 2000 [Only used for items (b) and (c) ;<== End here for Item (a) only } 

对于(b)

 #a:: { Run, vnc-E4_6_3-x86_win32_viewer.exe, C:\Program Files (x86)\RealVNC\VNC4 Viewer WinWaitActive, VNC Viewer { Send Frankenstien-SubSystem-1 Send {enter} } WinWaitActive, Authentication Credentials { Send {Shift Down} Send {Tab} Send {Shift Up} Send <username> Send {Tab} Send <password> Send {enter} } Sleep 2000 [Only used for items (b) and (c) Run, vnc-E4_6_3-x86_win32_viewer.exe, C:\Program Files (x86)\RealVNC\VNC4 Viewer WinWaitActive, VNC Viewer { Send Frankenstien-SubSystem-2 Send {enter} } WinWaitActive, Authentication Credentials { Send {Shift Down} Send {Tab} Send {Shift Up} Send <username> Send {Tab} Send <password> Send {enter} } Sleep 2000 [Only used for items (b) and (c) Run, vnc-E4_6_3-x86_win32_viewer.exe, C:\Program Files (x86)\RealVNC\VNC4 Viewer WinWaitActive, VNC Viewer { Send Frankenstien-SubSystem-3 Send {enter} } WinWaitActive, Authentication Credentials { Send {Shift Down} Send {Tab} Send {Shift Up} Send <username> Send {Tab} Send <password> Send {enter} } Sleep 2000 [Only used for items (b) and (c) Run, vnc-E4_6_3-x86_win32_viewer.exe, C:\Program Files (x86)\RealVNC\VNC4 Viewer WinWaitActive, VNC Viewer { Send Frankenstien-SubSystem-4 Send {enter} } WinWaitActive, Authentication Credentials { Send {Shift Down} Send {Tab} Send {Shift Up} Send <username> Send {Tab} Send <password> Send {enter} } Sleep 2000 [Only used for items (b) and (c) Run, vnc-E4_6_3-x86_win32_viewer.exe, C:\Program Files (x86)\RealVNC\VNC4 Viewer WinWaitActive, VNC Viewer { Send Frankenstien-SubSystem-5 Send {enter} } WinWaitActive, Authentication Credentials { Send {Shift Down} Send {Tab} Send {Shift Up} Send <username> Send {Tab} Send <password> Send {enter} } ;END Here; <== Item (b) twice } 

我怎样才能强制完成一个特定任务的热键,但继续给我所提供的?

您正在查找Return命令以停止执行热键。 看下面的代码段。 我创建了一个函数,可以用来调用特定的机器,而不需要太多的代码重复。 这样你将得到你想要的特定机器。

 #a::VNC("Frankenstien-SubSystem-1", "myuser", "mypass") #b:: VNC("Frankenstien-SubSystem-1", "myuser", "mypass") VNC("Frankenstien-SubSystem-2", "myuser", "mypass") VNC("Frankenstien-SubSystem-3", "myuser", "mypass") VNC("Frankenstien-SubSystem-4", "myuser", "mypass") VNC("Frankenstien-SubSystem-5", "myuser", "mypass") Return #c:: VNC("Frankenstien-SubSystem-1", "myuser", "mypass") VNC("Frankenstien-SubSystem-2", "myuser", "mypass") VNC("Frankenstien-SubSystem-3", "myuser", "mypass") VNC("Frankenstien-SubSystem-4", "myuser", "mypass") VNC("Frankenstien-SubSystem-5", "myuser", "mypass") ; ... and so on Return VNC(machine, user, pw) { Run, vnc-E4_6_3-x86_win32_viewer.exe, C:\Program Files (x86)\RealVNC\VNC4 Viewer WinWaitActive, VNC Viewer { Send % machine Send {enter} } WinWaitActive, Authentication Credentials { Send {Shift Down} Send {Tab} Send {Shift Up} Send % user Send {Tab} Send % pw Send {enter} } Sleep 2000 } }