我不知道如何使用变量作为数学表达式。下面的代码不会返回预期的解决方案,但不会抛出任何错误,相反,它只会在A中再次输出Q变量的内容
Q = 7+5=
StringReplace, Q, Q, =,, 1
A := Q
使用%Q%或Q=%Q%不起作用。然后运行MsgBox,%A%,它只会返回“7+5”。
请帮助我,因为我对自动热键非常陌生:)请查看以下内容:
不过,这应该可以做到:
Q = 7+5=
StringReplace, Q, Q, =,, 1
StringReplace, Q, Q,
我试着写一个循环,从一个名为InitialWords.txt的剪贴板上复制粘贴,我真正想要的是它一行一行地复制单词,并在每个单词后按F2键。这是我试过的-
Loop , read C:\InitialWords.txt
{
Loop , parse , A_LoopReadLine , %A_Tab%
{
clipboard= %A_LoopField%
send ^v
send {F2}
}
}
谢谢,谢谢你的帮助 看来您在循环后缺少
我有一个键盘,它有一个左Windows键和一个右上下文菜单键。我希望右上下文菜单键可以用作另一个Windows键,因此我使用一个简单的自动热键脚本“重新映射”键,如下所示:
AppsKey::LWin
这对每一个WinKey+(XYZ)组合都非常有效,例如Win+I、Win+X以及我用AutoHotKey映射的一系列其他热键
然而它不使用Win+L锁定控制台,这是我想重新映射该键的主要原因之一。有人知道为什么吗?
(注意:如果这对任何人都有帮助,我使用滚动锁定键作为“锁定控制台”键来代替此脚
有人能给我一个关于键盘钩子在自动热键中如何工作的基本解释吗?或者带我到某个地方的某个帖子或页面。我还是不懂这个概念。也许我只是读得不够。谢谢我在文档中解释过:
键盘挂钩监控击键以激活
注册表快捷键不支持的热字符串和任何键盘快捷键
(这是操作系统内置的功能)。它也
支持一些其他功能,如输入命令
您指的是特定命令#InstallKeybdHook?或者你只是在问如何使用自动热键捕捉关键点?嗨,很抱歉有离题的事情。是的,这是上面的命令,我想了解更多,但我想我更应该努力阅读并理解这些概念。我广泛使用ah
我希望我的自动热键脚本在按下键盘上的shift+3键后有鼠标单击,忽略按住shift键
例如,我尝试过这样做:
+3::
SetMouseDelay, 0
MouseGetPos, xpos, ypos
Send {Shift Up}
BlockInput, on
Send {Shift Up}
MouseClick, right, uhxpos, uhypos
Sleep, 41
MouseClick, left, yourxpos, yourypos
MouseMove, xpos,
我想在OneNote中键入TeX方程,将它们发送到MathType(MathType将其转换为MathML,并具有功能更丰富的编辑器),然后将它们发送回
发送、粘贴、复制和发回都没有问题。但是,我想输入像%a^2+b^2+\frac{2}{4}-\frac{3}{6}=c^2%。如您所见,我需要%字符之间的文本
我已经找到了DynamicHotstrings.ahk,因此我的代码如下所示:
hotstrings("%(.+)%", "handle_equation")
handle_equat
我正在尝试使用自动热键来读取一些RAM值。为此,我使用以下库:
关于这个库如何工作的文档清楚地写在上面,但是它缺少关于如何将它与模块一起使用的文档
我的基本指针是:“jvm.dll”+00338E84
我的偏移量是(从上到下):0x8、0x294、0x4B8、0x24、0x20
到目前为止,我的代码是:
#include %a_scriptdir%/classMemory.ahk
java := new _ClassMemory("ahk_exe javaw.exe", "", hProce
我希望能够同时选择窗口1和窗口2,并能够同时在两个窗口上键入内容
我在窗口1中键入的任何内容也将在窗口2中键入,例如:“大家好”
能够同时在两个窗口上键入,同时选择两个窗口进行键入。我打开了两个记事本窗口。我想在我打开的第一个记事本窗口中键入,在窗口1中键入的内容也将在窗口2中键入
可悲的是,我无法树立一个形象,因为你可以看到我想说什么
WinGet,windowid,List,
#如果是主动的,
空间::;跳跃
按键等待,空格,D
ControlSend,,{Space},ahk_id%win
每当你按下w,你就会进入一个循环,每10秒按一次e。必须按下另一个按钮才能在任何时候再次退出(并使重新开始成为可能)。这就是我到目前为止所做的:
w::
Loop
{
Send, e
Random, SleepAmount, 9000, 10000
Sleep, %SleepAmount%
x::Break
}
Return
我不明白为什么它还不起作用。它按了e一次,之后就什么也不做了
x::Break
是的缩写形式
x::
break
return
并因此终止当前子例程绝不在
这些是标签,不是函数,因此它们不会自动返回。因此,执行始终进行到最后一条指令,即clipboard=us TEM通常为BOUNT,如果按下任何按钮
将语法更改为:
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
#Warn ; Enable warnings to assist with detecting common errors.
SendMode Input
我希望这个自动热键脚本自动按下空格键,带有切换选项,这样我就不必一直按住空格键。切换键应该是鼠标中键。你能帮我把它写对吗?因为我找到的开关部分似乎不起作用。提前谢谢CPT价格:D
Main script:
*~$Space::
Sleep 100
Loop
{
GetKeyState, SpaceState, Space, P
If SpaceState = U
break
Sleep 5
Send, {Blind}{Space}
}
Toggle-part:
#MaxThreadsPerH
我正在尝试完成一个自动热键脚本,在这个脚本中,您可以双击任意SHIFT键两次,然后按某个字母来激活宏。
我有下面的脚本,但我有两个“错误”,我不知道如何解决。我尝试过其他论坛,但运气不好。希望有人能帮我。
我对这个有点陌生
错误1:如果在两个班次之间按任何字母,宏就会被激活,而只有在排他性地按班次时,宏才会被激活。例如,按SHIFT、s、SHIFT、d将启用宏
Bug 2:我不确定这是怎么发生的,但通过下面的代码,我会定期在键入时激活所有或部分宏。当我在一个句子中键入第一个大写字母时,似乎会发生
我正在尝试下面的代码,但没有成功
下面是代码的工作原理:
1-下载图片
2-显示图像
3-使用ImageSearch方法进行搜索
我试着按照这篇文章中的程序进行操作,但也没有成功:
我的AHK版本是:1.1.30.01 64位
我们可以通过以下命令获得它:MsgBox%A_AhkVersion”“(A_PtrSize=8?“64位”:“32位”)
这个标志是一个透明的PNG。如果您使用的图像没有透明度,它可能会工作。(足够小以适合屏幕,且不会缩小或放大。)
文档中有关于透明度设置的详细信息,但
我想用自动热键覆盖曲面笔上的“橡胶”按钮。我的目标是用SurfacePen单击我的PDF演示文稿(左箭头和右箭头)
在许多网站上都有描述:
我已经尝试使用其他键,如F1,以获得所需的反应,这是工作。只是按键F18、F19和F20(用于橡胶按钮)似乎不起作用
#F19:: Send, {Left}
#F20:: Send, {Right}
谢谢结果是这样的。我使用FoxiReader作为PDF阅读器
#IfWinActive, ahk_exe FoxitReader.exe
#F18:: S
我下载了
我想换一下窗户的位置
第21行我能看见
Gui,Show,X%statusx% Y%statusy% W%statuswidth% H%statusheight% NoActivate,%applicationname%
但是,尽管我搜索了ini文件中的文件(我是authotkey新手),但我看不到X和Y的设置位置。@Oleg啊,是的,谢谢,它能工作
使用以下脚本时:
运行,*动词TargetFile
…有没有办法使它适用于包含空格的动词?只需将其正常写入,程序就会将空格后的任何内容解释为目标文件的一部分。我曾尝试将动词作为变量传递,在不同的空格中使用双引号,但似乎没有任何效果
谢谢。尽管您说您尝试了双引号,但下面是一个使用run并包含空格的示例:
运行“C:\Program Files\Internet Explorer\iexplore.exe”
ahk中最常用的空间是%a_space%
您也可以尝试backtick s(“顺便说一句,我
这是我的密码:
IniRead, intLastMyDate, c:\temp\test.ini, section1, intLastMyDate, 130101
formattime, intCurrentMyDate, A_Now, yyMMdd
; if the ini has a date stored that is less than today, I will want to
; include code that restarts some other variabl
我必须在工作中完成一项非常繁琐的任务,包括打开代码、将其复制到记事本、在其他特定文本之后添加文本、剪切并将其他测试粘贴到另一行,然后保存文件。我已经知道了如何将复制过程添加到热键中,但是我想我需要一些帮助来编写遍历文本并添加特定字母数字代码的代码
以下是我目前掌握的代码:
F12::
Send ^a
Send ^c
Run Notepad
Sleep 500
Send ^v
/*
text traversing/modifying code goes here
*/
return
您需要查看
我想将“滚动锁定键”设置为挂起和恢复的切换快捷键
我的自动热键脚本。我的意思是通过切换快捷方式使当前运行的ahk脚本中的所有行暂停并恢复
这是可能的吗?简短而准确的答案是,是的,这是可能的
长而复杂的答案是在脚本中添加以下行
scrolllock:: Pause
切换挂起:
f1::suspend
关闭脚本:
f2::exitapp
f3::reload
f4::edit
重新加载脚本:
f2::exitapp
f3::reload
f4::edit
编辑脚本:
f2::exit
将Capslock重新映射到Esc类似于这样工作:
Capslock::Esc
但当我添加以下重映射(Esc、Alt Esc、Ctrl Esc)时:
。。。要禁用原始Esc键,Capslock重新映射将不再起作用
如何将Capslock重新映射到Esc并完全禁用原始Esc键
我希望您能帮助我。正如@vasili所说的,您的Capslock连接到Esc,Esc已禁用
从中的示例中,我发现,如果要切换两个键,应该编写如下内容:
a::b
b::a
因此,使用这种逻辑,我尝试放置一些通常不使用的键
有没有人曾经有过以下情况的运气
我正在为凡人在线编写代码,当游戏没有聚焦时,需要按下一个键。除了“controlSend,{s Down},ahk_id%id%”和“controlSend,{s Up},ahk_id%id%”分别之外,所有其他命令在这段代码中都能正常工作
training() {
;set variabls to global
global
id := getMortalID()
while(Continue()) {
if
我试图每50毫秒生成一个脚本推送空间,但它只在我每次按键时才会这样做。我希望它不断循环。代码如下:
Loop
{
^p::
Send, {Space}
Sleep, 50
return
}
假设要通过Ctrl+p启动,只需将循环放入热键执行体中即可:
^p::
loop {
Send, {Space}
Sleep, 50
}
return
注意:以返回结束热键是一种很好的编程风格,但请注意,永远不会到达此返回!(永无止境的循环)
要激活和停用空间发送,您可能需要使用以下命令:
我试图创建一个绑定,如果我按住右键单击,它也会按住左键ctrl和左键alt
除此之外,我还想添加一些条件,防止我执行Alt+Tab(在本例中,按住右键单击并按Tab)或Ctrl+Esc。对于这两个条件,我只想插入原始按键,Tab或Esc
问题是,尽管尝试了许多不同的方法来实现这一点,但脚本仍然将我的输入读取为Alt+Tab或Ctrl+Esc,而不是Tab或Esc
这是我的剧本:
#IfWinActive Guild Wars 2
#NoEnv
#Warn
SendMode Input
RBut
您好,我的脚本几乎完成了,但在执行热键时出现了问题
问题:当我点击Alt+Space时,它与空格冲突。。它们彼此重叠或同时执行两个热键,这使得自定义修改器键不稳定或无法按预期工作
代码如下:
space::
send {shift down}{MButton down}
KeyWait, space
send {shift up}{Mbutton up}
return
!space::
send {Mbutton down}
KeyWait, space
keywait, alt
send {
我希望仅通过右键单击任务栏图标并选择“关闭”来关闭计算机中的所有程序。因此,当我在任何窗口上单击X按钮时,它应该转换为最小化。如何使用自动热键实现此目标?此自动热键脚本应能实现您所需的目标。注意:如果启用aero模式,代码可能无法正常工作
MouseGetPos获取光标下窗口的hWnd。
WM_NCHITTEST获取有关光标下项目类型的信息,需要一点精细的数学运算才能将坐标组合成4字节的结构。
困难之处在于,每次使用鼠标时,此脚本都会捕获鼠标左键的每次按下,但不得干扰鼠标的正常功能。当按下鼠标按
我想知道鼠标光标是否已更改为文本光标,并为其激活新操作
代码如下:
#IfWinActive, ahk_exe chrome.exe
/* I want to put the if statement here; if not text cursor then the following would be activated */
Left::
{
SendInput, ^+{Tab} ; Navigate one tab back in chrome
}
return
Right::
自动热键中的VK键码是什么,SC键码是什么,它们之间的区别是什么?虚拟键码(VK)和扫描码(SC)在任何方面都不是自动热键独有的
扫描代码是按键或释放键时键盘硬件发送的代码。对于任何给定的物理密钥,无论系统设置如何,这些密钥始终相同
虚拟键码是Windows映射到扫描代码以赋予其含义的代码。给定的虚拟键码通常具有相同的含义,但可以在不同的键盘布局上分配给不同的物理键(不同的扫描码)
发送或按键时,可通过SC、VK或两者识别。但是,自动热键设计为仅由SC或VK识别热键,而不是同时由两者识别
一些非
我有一个自动热键脚本,使用它发送命令太快,我的程序无法处理。我的脚本将发送鼠标单击以聚焦输入字段,然后在字段完成聚焦之前开始键入
我尝试使用使我的脚本运行得稍微慢一点,但这不适用于SendInput
注意:SendInput不遵守SetKeyDelay;在该模式下,击键之间没有延迟。当SendMode输入生效时,发送也是如此。
我目前的解决方法是在每次输入后使用sleep命令,但这并不理想
SendMode Input
F1::
MouseClick, left, 61, 50
带有PixelGetColor命令的RGB(十进制)值在自动热键中不起作用。
如果您使用命令行,PixelGetColor,color,%MouseX%,%MouseY%,RGB
它会给我一个[RGB(十进制)值],但它会给我一个[RGB(十六进制)]
默认情况下,如果使用命令行:PixelGetColor,color,%MouseX%,%MouseY%
然后它会给我一个[RGB(十六进制)值],但它会给我一个[BGR(十六进制)值]
注意-我确实根据评论重新编辑了我的问题
我听说是BGR格式的
大家好,我有一个AHK的条带…当我按下鼠标右键和左键时,鼠标会开始移动…但我想按住鼠标右键和左键来拖动鼠标,所以当我不按住鼠标时,它会停止,就像“如果条件”,如果不按住鼠标停止
剧本:
~RButton & LButton:: ;This is just a note
While GetKeyState("RButton", "P") AND GetKeyState("LButton", "P")
{
DllCall("mouse_event", uint, 1, int
我如何更改gui上文本的颜色,并在按下某个键后将其穿透(例如,在按下F2键后穿透并将“测试”的颜色更改为绿色)
谢谢:)请参阅帮助文档以调整字体。此外,还显示了可以调整的各种选项
我添加了一个变量(“vTest”)来标识文本控件,以便它可以被GuiControl操作
f1::
Gui , Add , Text , cBlue vvTest , Test
Gui , Add , Text , cRed , Press F2 to activate
Gui , Show , w350 h100
Re
我尝试将[Strg]+[Win]+[Numpad3]发送到OBS Studio,通过自动热键脚本暂停录制。
我当前的方法如下,因为我希望避免其他应用程序对这个快捷方式做出反应。例如,记事本++会随着打开的选项卡而改变
ControlSend, , ^#{Numpad3}, ahk_class Qt5QWindowIcon
事实上,在OBS演播室里什么也没发生。即使使用{Ctrl down}和{LWin down}也不起作用。您有什么想法吗?使用(或使用单独的向上和向下事件,中间有延迟)使按键保
我很好奇,是否可以让一个AHK脚本左键单击一次,然后按住右键单击30秒,然后循环,但可以在绑定上切换。以下是我尝试过的:
F1::
{
Click Left
Sleep, 10
}
{
Click Right
Sleep, 10
}
Loop
这应该可以做到,我还添加了一些功能,当你关闭人民币时,它会释放人民币,这样鼠标右键就不会卡在按下状态
*F1::
toggle^=1
if(toggle){
gos
如何将睡眠添加到enterpixel搜索本身?我想在按下热键后延迟功能
f1::
enterPixelSearch,x1,y1,1,100,200,100,0x000000,2,Fast RGB
if(ErrorLevel == 0)
{
sleep, 20
send
}
f1::
Sleep 1000
enterPixelSearch,x1,y1,1,100,200,100,0x000000,2,Fast RGB if(Er
我正在尝试做许多文本替换。一些替换触发缩写是其他触发缩写的前缀,如:
:*:foo::the
:*:fooed::there
目前,这产生了:
foo = "the"
fooed = "theed"
“foo”作为“fooed”的前缀,发射得太快了。通过删除“*”并需要一个结束字符,可以很容易地解决这个问题。然而,这种方式具有我希望保留的有价值的预测文本功能
我认为这样做的方式是在键入“foo”后立即替换热字符串,但要将“foo”保留在热字符串“剪贴板”中。然后,当添加“ed”时,整个剪贴板
我正在尝试使用自动热键映射键盘上的以下组合键-
Alt i->向上箭头
Alt j->左箭头
Alt k->右箭头
Alt m->向下箭头
我在AutoHotkey.ahk文件中添加了以下代码-
!i::Up
!j::Down
!m::Left
!k::Right
但它并没有产生预期的结果。请帮忙 我认为更好的方法是使用免费应用程序TouchCursor,因为它有训练模式,更容易配置。此外,我还惊讶地发现,在实践中使用“空格”而不是“alt”更有效。杰伊的答案有效,但是
!i::SendInp
我有一个包含两个子例程的脚本:a和B。如果我定期启动.ahk脚本(双击其图标),我希望A运行。如果在按住按钮(比如Ctrl)的同时(双击图标),启动.ahk脚本,我希望B运行。这可能吗?无法检测脚本启动前是否按下了键,但您可以使用来检查脚本启动时键是否处于“按下”状态:
if GetKeyState("Ctrl")
MsgBox Holding Ctrl
else
MsgBox Not holding Ctrl
无法检测脚本启动前是否按下了键,但可以使用检查脚本启动时键是否处于
我试图找出是否有一个“另存为”框打开,其中包含此WinExist脚本
if WinExist,Save As,Save As
MsgBox, is there
else
MsgBox, is not there
假设这是OSs的窗口,我会这样做
^F1:: ;press Control + F1 to serch the window.
if FindWindow()
msgbox Found
else
msgbox Not Foun
我有以下自动热键脚本:
^d:: ^l
^l:: ^g
我的意图是有两个键映射:Ctrl+D->Ctrl+L和Ctrl+L->Ctrl+G;但是当我运行这个脚本时,Ctrl+D并不是映射到Ctrl+L,而是映射到Ctrl+G,就像自动热键计算Ctrl+D->Ctrl+L->Ctrl+G一样
有什么方法可以防止Autohotkey多次评估keymap吗?您的脚本会互相调用,这是Autohotkey中的一个常见问题。
为了防止这种情况发生,您必须在热键前面添加一个您不希望ahk启动的$
^d::
我希望在某些成员登录网站时收到通知。该站点的登录成员列表通常扩展到三到四个HTML页面,每个URL除了末尾的页码外都相同。我有一个文本文件,列出了我想要通知的少数成员。如果我的列表中有任何成员登录,下面的脚本将成功通知我。它下载第一个页面,搜索该页面上的每个成员,通知是否找到,然后在睡眠五分钟并重新开始之前,对剩余的每个页面重复该过程
我想改进这一点的方法有几十种,但首先我想解决重复通知的问题。只要他们登录,我每五分钟就会收到关于同一个成员的通知。一旦我确定了特定成员的MsgBox,我希望脚本继
我编写了一个简单的脚本,在Firefox中打开活动的joomla站点管理员页面:
#a::
Send, !d
GetText(url)
StringGetPos, localHost, url, localhost
startPos := 7
if(localhost)
startPos := 17
StringGetPos, pos, url, /,,startPos
adminURL := SubStr(url,1,po
我肯定我犯了一个很简单的错误,但我今天一定过得很好。我想不出来
以下是我的情况:
我将使用InputBox从用户处获取多个输入值,如下所示:
InputBox, r, what is the value of r ?, Enter Value, , 400, 100, 300, 300, , 10, 1
InputBox, c, what is the value of c ?, Enter Value, , 420, 120, 300, 300, , 10, 3
InputBox, ct, w
我想让我的左控件成为hotstring的endchars,但是我没能做到,我非常感谢你的帮助
这是我得到错误的一行:
#Hotstring EndChars {LCtrl}
你不能开箱即用。在AHK论坛中有几个变通方法,例如…@MCL谢谢,这正是我要寻找的线索
我的Windows7键盘底部有一个标有Fn的蓝色字母键。每当有人按下自动热键时,我想触发自动热键脚本
“自动热键”中的功能键是什么?Fn键的问题在于,许多键盘并没有将其作为普通键来实现,而是将其作为修改器来实现,以更改同时按下的其他键的按键信息
下面是Windows如何查看输入的示例场景:
按F1向下-Windows接收F1向下代码
按F1 up-Windows接收F1 up代码
按下Fn向下键-Windows无法获取任何内容
按下F1键-Windows接收媒体▶ 下行代码
按F1向上-Wind
此自动热键脚本会产生疯狂的输出:
A\u LoopFileFullPath=E:\fre\private\htmldevelope.stversions
A\u LoopFileFullPath=E:\fre\private\htmldevelope.stversions
A_LoopFileName=.stversions
A\u LoopFileDir=E:\fre\private\htmldevelope
A_ScriptDir=E:\fre\private\htmldevelope\A
我刚开始使用自动热键(我是它的noob)来重新映射一些组合键,比如CTRL+TAB(如果你用左手的话这很好),以便在使用右手的时候可以访问
我的初始脚本如下:
RControl & RShift::
{
send {LControl down}{tab}{LControl up}
return
}
它工作得很好,但是当在VisualStudio中切换选项卡时,例如,我不能按住CTRL键来保持切换选项卡,我只能在两个选项卡之间切换
有人知道是否可以用Autohotkey实
我有一个热键定义:
:*:()::(){left}
如果我这样写:
word ()
function()
光标在括号之间结束。:)但是如果我写这样的东西:
word ()
function()
光标在括号的右侧结束。如何更改hotstring,使其始终将光标放在括号之间,而不考虑前面的空格
:?*:()::(){left}
?(问号):即使热字符串位于另一个单词内,也会触发热字符串。使用?0关闭此选项
非常感谢!我刚刚测试过这个(它有效!!)再次感谢!
我正在尝试游戏脚本,请在运行时单击E或Shift+E Shift->。如何在AHK中使用或
e OR +e::
{
Send, E
Sleep, 50
Send, E
Sleep, 50
Send, F
}
return
$阻止Send,E再次触发热键
同时检查此链接我的想法是,我单击E执行某些操作,或者我甚至可以使用SHIFT+E执行相同的操作。这不起作用,无论如何,感谢您的帮助comment@MuhammadAzhar此外,如果希望在发送密钥之间有50毫秒的延迟,可以使用SetKeyDel
我使用Autohotkey通过以下代码创建一个新的.txt文件:
; shift alt ctrl n
+!^n::
run, notepad.exe "C:\Users\%A_UserName%\Dropbox\priv\nota\%A_YYYY%-%A_MM%-%A_DD%--%A_Hour%-%A_Min%-%A_Sec%.txt"
sleep, 800
return
新文件将以日期时间字符串命名,并存储在我的文件夹\nota\中。但是,它不会直接生成文件,而是打开以下对话框
请求允许这
我有一个脚本,应该是模拟科尔马克键盘布局。我希望能够使用Win+Space切换布局
以下是脚本:
colemak=true
#如果%colemak%=真
热键。。。
#如果
#Space::ChangeLayout()
更改布局()
{
科尔马克:=!科尔马克
if(colemak=false){
MsgBox Colemak已停用。
}否则{
MsgBox Colemak已激活。
}
}
当我按下Win+Space时,colemak变量没有改变,它保持在true。我做错了什么
另外,我想有一
1 2 3 4 5 6 ...
下一页 最后一页 共 24 页