好的,所以我有这个 AutoHotkey 片段:
; Google text from any app
; from http://superuser.com/questions/7271/most-useful-autohotkey-scripts/165220#165220
#s::
MyClip := ClipboardAll
clipboard = ; empty the clipboard
Send, ^c
ClipWait, 2
if ErrorLevel ; ClipWait timed out.
return
Run http://www.google.com/#hl=en&q=%clipboard%
Clipboard := MyClip
Run Code Online (Sandbox Code Playgroud)
它工作正常,但我想改进它以处理您突出显示 URL 并自动运行 URL 本身 ( Run %clipboard%) 而不是 Google 搜索的情况。如何让 AutoHotkey 检测字符串是否为 URL?
似乎我可以使用StringLeftorSubStr提取前几个字符并查看它们是否匹配http://or www.,或者使用正则表达式可能更强大?不过,我不太了解 AHK 的语法。
此脚本检查剪贴板中的 URL,显然使用StringGetPos,但我不想检测 www 是否出现在字符串中的任何位置。仅当它出现在开头时。
我有两个子程序的脚本:一个和乙.如果我定期启动脚本(通过双击其图标),我希望A运行.ahk.如果我按下按钮(例如,按住Ctrl键)的同时启动脚本(双击图标),我希望B运行.ahk.这可能吗?
有没有办法在自动键中写一个自动键?例如,我有一个autohotkey在我的工作标签中打开一些网站,我有一个自动键,输入时输入我的用户名和密码的一些网站.有没有办法把密码autohotkey(actd(在符号))放在IE选项卡autohotkey中?我做了一些搜索,看起来不像{@}可以发送,所以我不确定是否有其他方法可以做到.
我正在尝试使用以下键模拟主页按钮的功能(转到行的开头):ctrl+left(如 Mac OS 中的 cmd+left),但由于某种原因,它把我带到了文档的开头。
同样,ctrl+right 将我带到文档的末尾,我希望它到达行尾。那么,我做错了什么?
我的代码:
^left::Home
^right::End
Run Code Online (Sandbox Code Playgroud) 我正在使用自动热键。
我有一个看起来像这样的字符串S523.WW.E.SIMA。我想删除点之后的字符串的最后几个字符(包括点本身)。因此,删除后,字符串将如下所示S523.WW.E。
这可能看起来像一个简单的问题,但我无法弄清楚使用 Autohotkey 中可用的字符串函数。如何使用 Autohotkey 完成此操作?非常感谢。
有没有办法在AutoHotKey源代码中进行换行?我的代码长度超过80个字符,我希望将它们整齐地分开。我知道我们可以使用其他语言来完成此操作,例如下面的VBA:
If Day(Date) > 10 _
And Hour(Time) > 20 Then _
MsgBox "It is after the tenth " & _
"and it is evening"
Run Code Online (Sandbox Code Playgroud)
AutoHotKey中是否有源代码换行符?我使用了较旧版本的AutoHotKey,版本1.0.47.06
我是AutoHotKey的新手,到目前为止,我认为自己很幸运能够创建一个脚本来自动化窗口中大约90%的数据输入.我现在正试图将其提升一个档次,并在我的数据输入脚本中添加警告/警告GUI.我想暂停正在运行的脚本并打开一个GUI,它会提醒我查看已输入的内容,如果某个特定条目看起来没问题,只需一个按钮即可继续操作,另一个按钮可以转出GUI和如果条目不正确,则为脚本的剩余部分.
这是我提出的一些代码,与一些伪代码混合以帮助显示我想要做的事情.
(Previous data entry script executes to this point)
Stop the script
Gui, New
Gui, Add, Text, 'n Check Authorization Number to be sure it is A1234 (FY 15). ; Wraps text
Gui, Add, Button, Default, Continue
Gui, Add, Button, Quit
Gui, Show, IMPORTANT!
If Continue button is clicked
----Continue with script
If Abort button is clicked
----Close the GUI
----Exit the entire script
(Resume where I left off with rest of the data entry script)
我已经阅读了AHK帮助文件并且难以理解如何使这些按钮工作,以及如果我点击继续,如何正确地从GUI返回到脚本,或者如果我发现问题就退出整个事情.我可以调整GUI的大小和按钮位置等内容; 最重要的是获得正确的GUI代码.有人可以帮助代码吗?(我上次的编程课程是在2003年,所以我忘了很多!)
我需要在两个AutoHotkey键映射配置之间切换.我想通过F3切换两者.从我的在线研究和StackOverflow,我认为以下应该做我想要的:
#ifwinactive
next_make_mac = %1%
msgbox next_make_mac: %next_make_mac%
#If next_make_mac
msgbox Setting Mac settings.
RAlt::Control
Escape::Delete
RWin::Escape
LWin::LAlt
LAlt::LWin
next_make_mac := false
msgbox Mac settings set.
#If
#If !next_make_mac
msgbox Setting PC settings.
Ralt::Escape
msgbox PC settings set.
next_make_mac := true
#If
msgbox %next_make_mac%
F3::
Run %A_AhkPath% %A_ScriptName% %next_make_mac%
return
Run Code Online (Sandbox Code Playgroud)
但是,该#If next_make_mac指令始终评估为true.我不确定为什么会这样.事实上,即使我进入next_make_mac := false它仍然评估为真.有没有更好的方法来做我正在做的事情?
我正在运行AutoHotkey 1.1.21.03
我使用 autohotkey 版本:1.0.48.05(因为我坚持使用 activeaid)。读取当前路径的脚本如下(一直工作到 Win 7)。
; Get full path from open Explorer window
WinGetText, FullPath, A
; Clean up result
StringReplace, FullPath, FullPath, `r, , all
FullPath := RegExReplace(FullPath, "^.*`nAddress: ([^`n]+)`n.*$", "$1")
Run Code Online (Sandbox Code Playgroud)
我怀疑在切换到 Win10 时,我似乎也切换了语言。如果我在使用 WinGetText、FullPath、A MsgBox %FullPath% 清理之前将 MsgBox 排除在 %FullPath% 中,我会在其他字符串中看到(显然由 CR 分隔):地址:V:\Vertrieb\Prospects\MyFile
那么我需要如何调整正则表达式来提取那个字符串!
最好的问候汉内斯
我想为AutoHotkey中的员工记录创建一个自定义类对象。该类对象将存储员工的年龄,姓名和职称。
例如,在Java中:
public class Employee {
public int age;
public String name;
public String title;
public Employee(int age, String name, String title) {
this.age = age;
this.name = name;
this.title = title;
}
}
Run Code Online (Sandbox Code Playgroud)
这样便可以为新员工设置属性。
Employee worker1 = new Employee(22, "Timothy", "Programmer");
Employee worker2 = new Employee(26, "Anthony", "Quality Assurance");
Run Code Online (Sandbox Code Playgroud)
我无法在AHK中找到具有等效功能的任何东西。据我所知,AHK中的对象在功能上是相当基本的。
如何在AutoHotkey中创建具有自定义属性的类对象?