Autohotkey 自动热键内部的自动热键

Autohotkey 自动热键内部的自动热键,autohotkey,Autohotkey,有没有办法在自动热键中写入自动热键?例如,我有一个自动热键,可以在工作时为我打开一些网站的选项卡&我有一个自动热键,当键入时,可以输入一些网站的用户名和密码。有没有办法将密码自动热键(actd(at symbol))放入IE标签自动热键中?我做了一些搜索,&看起来{@}无法发送,所以我不确定是否有其他方法可以发送。您的自动热键脚本可以发送其他脚本,假设它们不是持久的。您可以循环浏览选项卡列表,然后调用一个或多个其他脚本 至于发送@符号,您应该能够毫无问题地使用该命令。如果确实遇到了奇怪的问题,则

有没有办法在自动热键中写入自动热键?例如,我有一个自动热键,可以在工作时为我打开一些网站的选项卡&我有一个自动热键,当键入时,可以输入一些网站的用户名和密码。有没有办法将密码自动热键(actd(at symbol))放入IE标签自动热键中?我做了一些搜索,&看起来{@}无法发送,所以我不确定是否有其他方法可以发送。

您的自动热键脚本可以发送其他脚本,假设它们不是持久的。您可以循环浏览选项卡列表,然后调用一个或多个其他脚本

至于发送@符号,您应该能够毫无问题地使用该命令。如果确实遇到了奇怪的问题,则可以尝试使用SendRaw命令或使用以下语法:
Send{raw}@


如果这还不能回答您的问题,请粘贴一些您正在尝试工作的代码。

您可以做的是编写两个单独的脚本。没有指定自动热键,但会被初始脚本调用。在您的例子中,您已经说过您已经有了一个tabopening热键,因此我将使用这两个脚本的一个非常基本的示例,但是演示如何发送@符号并从热键中调用另一个脚本

我将使用的两个脚本是:
tabOpener.ahk
,以及
passwordEntry.ahk

它们将显示如下:

塔博纳 passwordEntry.ahk
希望这能有所帮助。此示例演示了使用{Raw}标记发送特殊字符(),以及使用Run/Runwait()从现有热键中调用单独的脚本。

根据您的web浏览器,您可以使用COM对象非常轻松地处理此问题。您可以找到用户id密码字段,例如:

url := "http://yourwebsite.com"
wb := ComObjCreate("InternetExplorer.Application") ; create broswer object
wb.navigate(url)
wb.visible := true ; sets the browser as visible, defaults as not
While (wb.busy || wb.readyState <> 4)
    Sleep 100<br>
wb.document.all.username.value := "yourname@wherever.com"
wb.document.all.password.value := "Pa$$word15"
wb.document.all.btnLogin.click()
url:=”http://yourwebsite.com"
wb:=ComObjCreate(“InternetExplorer.Application”);创建broswer对象
wb.导航(url)
wb.visible:=真;将浏览器设置为可见,默认设置为不可见
While(wb.busy | | wb.readyState 4)
睡眠100次
wb.document.all.username.value:=”yourname@wherever.com" wb.document.all.password.value:=“Pa$$word15” wb.document.all.btnLogin.click()

但是,这取决于您是否使用IE访问您的站点。稍微看一下文档中的COM对象以了解它,您将了解有关DOM的一些真正基本的内容,如下:。我在javascript中设置“username”和“password”以及“btnLogin”控件ID的地方,需要通过查看您的页面来发现。您还应该查看本教程:

您是否尝试将它们合并到一个脚本中?请发布您的代码(同时修改任何用户名/密码)。
#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

;When using send, adding the {Raw} tag will literally interpret every 
;character in the remainder of a string.  For instance ^ will send ^ 
;instead of a Control keypress.
Send {Raw}Username@domain.tld
Send {Tab} {Raw}Password
;~ Alt+1 to send username (email format) and password
!1::Send, myUsername@mydomain.com{tab}myPassword{enter}
url := "http://yourwebsite.com"
wb := ComObjCreate("InternetExplorer.Application") ; create broswer object
wb.navigate(url)
wb.visible := true ; sets the browser as visible, defaults as not
While (wb.busy || wb.readyState <> 4)
    Sleep 100<br>
wb.document.all.username.value := "yourname@wherever.com"
wb.document.all.password.value := "Pa$$word15"
wb.document.all.btnLogin.click()