autohotkey吧
关注: 4,667 贴子: 16,145

AHK爱好者之家,让你的电脑更顺手!

  • 目录:
  • 程序设计及人工智能
  • 20
    我想在电脑桌面上,不改变现有鼠标指针的位置,按下q键在另一个指定的坐标上点击一下, 用ControlClick,好像必须在程序里面才可以点,要怎样可以在桌面上实现呢?
    ______Seve 3-16
  • 14
    去年3月份开始发现ahk的,当时用的是1.X版本,发现它的语法一点都不规范,像乱来的 后来发现了2.0,好像不到一个月就直接过渡到2.0,顺便花了点时间把原来的不到1000行代码改成了2.0版本。 现在已经是5000多行代码了,做了几十个功能。 (当然有些功能太复杂,我实在不会,相信99%的人也不会,借用了一些顶级大佬的代码,但95%以上的想法和功能还真是自己写的。不过我的绝大部分代码都不太复杂 我不玩游戏,主要是日常软件的辅助,看到哪个软
  • 0
    参考了https://github.com/WwwZMing/IMEAutoSwitch_V2 他的逻辑判断还是太复杂,而且偶尔会报错,浏览器输入经常会切换错误,原版KBLAutoSwitch已经停更 而且既然已经用上ahk,再开一个ahk编写的KBLAutoSwitch觉得怪怪的,于是自己精简一段出来: 我电脑上只安装一个中文输入法,逻辑比较简单: Auto_Switch := 1 ; 监听窗口切换输入法 if (Auto_Switch = 1) { DllCall("RegisterShellHookWindow", "UInt", A_ScriptHwnd) OnMessage(DllCall("RegisterWindowMessage", "Str", "SHELLHOOK"), shel
    天籁188 3-13
  • 2
    ;AHK v2, 这是config.ini内容如下: [VAR] kmapx=900 sss1=3 sss2=20 w01=36 h01=33 cmpx01=1564 cmpy01=320 tdxx01=950 tdxy01=400 tdxx02=855 tdxy02=655 tdxx03=1588 tdxy03=944 wh6x01=700 wh6y01=500 wh6x02=399 wh6y02=78 不想一个个写代码读取,因为将来还会有更多赋值 下面是主程序内容: Config := Map() FP01 := "F:\_ku\Documents\_config.ini" keys := IniRead(FP01, "VAR") for key, value in keys { %key% := value } Warning: This local variable appears to never be assigned a value. Specifically: kmapx ▶ 072: ToolTip("◣", kmapx, 0, 1)
    天籁188 3-13
  • 1
    CoordMode Pixel CoordMode,Mouse loop 600 { FindText().ImageSearch(x1, Y1, 0, 0, A_ScreenWidth, A_ScreenHeight, Text:="|<>##10$0/0/3A382C,10/9/5C5744") if ErrorLevel ;如果没找到 { sleep 1000 continue ;继续寻找图片 } else ;如果找到 { mousemove,% x1+3, % Y1+3,5, ;微调整鼠标位置,避免点击边框 sleep 200 Click break } } ExitApp ;注意这里执行完会退出脚本,但有时我想按F4键,15分钟后电脑关机 return 上面代码是不按F4键常规执行,现在想常规执行脚本时,再多条按F4键15分钟后电脑关机,我想设定F4键
    hgd1338 3-9
  • 4
    按下 f1 检测当前鼠标坐标,然后平移到 xx 位置,仓管牛马求助
    cexoamd4 3-8
  • 1
    代码如下,想定是aabaab这样的循环输出结果,但是结果并不对。 Settimer a1, on Settimer b1, on a1: send,a Sleep,1000 return b1: send,b Sleep,2000 return
    cexoamd4 3-6
  • 33
    AHK2.0 CHM格式文件,原来的标题显示是“中文帮助”,在VScode里面的函数上面按F1无法直接定位到具体函数,我用chm工具改成了“help”,就可以支持了。 我将文件上传到了百度网盘,分享给大家。 链接:https://pan.baidu.com/s/1OXKCwlF--yVHmwAgRPxsOQ提取码:8888 再次感谢@選擇愛愛選擇
  • 6
    如题,尝试sendinput, send{raw}过,实现不了,如果是直接先send shift切换中英文的话,有时候行有时候不行,看看大佬是怎么实现的
  • 0
    我最近玩了一个游戏短按c是小跳,长按c是大跳,我想实现不管我怎么按都能跳在一个固定高度,小跳按下和释放的延迟在50m内,大跳是200m,如果我想跳跃高度稳定在中间,该怎么办,延迟的影响太大了
  • 0
    好像热键能自动地屏蔽掉相同的热键,但是不会屏蔽其它的热键。。?
  • 4
    求脚本,比如单键按下a,输出a,长按输出1,双击输出10
    天籁188 2-21
  • 0
    ; 弹出一个输入框,让用户输入所需的文件扩展名 InputBox, 文件扩展名, 请输入所需的文件扩展名:, 如:txt ; 将剪贴板中的内容追加到一个新文件中 ; 文件名格式为:当前工作目录下的 年-月-日-时-分-秒.用户输入的扩展名 ; 使用UTF-8编码 FileAppend, %A_Clipboard%, %A_WorkingDir%\%A_Now%.%文件扩展名%, UTF-8 ; 脚本执行完毕后返回 return 利用右键菜单管理程序ContextMenuManager之类加入菜单。就可以在当前目录位置,把剪切板内容写进当前时间加自定义扩展名创建文件了。
    白光 2-21
  • 6
    比如在autocad中,数字键1设置1::Send "L{Enter}",但接着弹出文本框要求输入数值的时候如果要输100,继续按1就会被迫输入L,在这个时候如何禁用1这个热键,只让他输入1
    🐬Oceano 2-20
  • 0
    #Requires AutoHotkey v2.0 CATIA := ComObjActive("CATIA.Application") ; 定义 WinAPI 函数 CreateThread := "Kernel32\CreateThread" WaitForSingleObject := "Kernel32\WaitForSingleObject" CloseHandle := "Kernel32\CloseHandle" ; 定义 等待 函数的调用,而不使用自带Sleep函数 Pause(milliseconds) { DllCall("kernel32.dll\Sleep", "UInt", milliseconds) } ; 线程函数 ThreadFunc(Param) { Loop 10 { Pause(2000) ;如果用AHK的Sleep会阻塞线程. GroupAdd("弹窗标题", "超级输入消息") GroupAdd("
    chenyjay 2-15
  • 0
    小程序需要电脑端才可以,分辨率要求是2560 * 1600. 程序使用的是 autohotkey 。 欢迎大家试用,并提出宝贵意见。 因为是学习玩,并没有大开发的意向。 通过网盘分享的文件:wxavatar.exe 链接: https://pan.baidu.com/s/1rFRZdxouRLOwTPaw-aY4LA?pwd=kyrk 提取码: kyrk --来自百度网盘超级会员v3的分享
    六三门 2-15
  • 3
    比如我想按f后,输出123456789,9个数字各一次,次序随机,每一次按f,结果都不一样
  • 2
    按住Q键,向记事本_连续发送按键Q;弹起Q键,则停止发送按键Q . 请用AutoHotkey写一段代码。我想实现: 1 先获取记事本_主窗口句柄Hwnd,再获取子窗口句柄childHwnd。 2 按住Q键,就向处于后台的记事本子窗口childHwnd 连续发送按键Q; 弹起Q键,则停止发送按键Q。 3 如此循环。 . ```autohotkey #NoEnv SetBatchLines, -1 ; 获取记事本主窗口句柄 hwnd := WinGetHandle("无标题 - 记事本") ; 获取子窗口句柄,这里假设子窗口是记事本的编辑区域 childHwnd := DllCall("user32.d
    六三门 2-13
  • 1
    注册与反注册。regsvr32 com接口dll . regsvr32 路径\dm.dll regsvr32 /u 路径\dm.dll regsvr32是一个用于注册和反注册DLL文件的命令行工具,主要用于在Windows系统中注册或注销COM组件。 命令行用记事本编辑,文件后缀名保存为 .bat . 使用方法 注册DLL文件:在命令提示符中输入 regsvr32 [lbk]路径[rbk]filename.dll,其中 [lbk]路径[rbk]filename.dll 是要注册的DLL文件的完整路径和名称。如果DLL文件位于当前目录下,可以直接输入文件名。 . 反注册DLL文件:在命令提示符中输入 regsvr3
  • 1
    做了魔兽世界正式服和怀旧服服的一键,然后换台电脑,正式服的一件正常可以使用,怀旧服的一件发现取色的数值完全变了,有人能提供点解决思路吗,两台电脑都是a卡,游戏设置一样,分辨率这些都是一样,正式服的一键两台电脑都是正常使用,怀旧服为什么会取色数值天差地别?
  • 3
    百度搜索:autohotkey。找到带有官网标识的,点进去就是官方主页
  • 3
    如图所示,左边的一个开始键一个终止键就没问题,但是右边的单键循环就寄,变量切不回0导致无法终止,这是为什么,之前用v1的时候在if里面加return就可以跳过后续指令,但是换v2了就不行了
  • 172
    #IfWinActive,贴吧世界 return f1:: if (xh){ xh=0 }else{ xh++ } if xh=0 ControlGet,AHK_ID,Hwnd ,,,%窗口名% if xh=1 ControlGet,AHK_ID2,Hwnd ,,,%窗口名% MsgBox,窗口1ID=%AHK_ID%窗口2ID=%AHK_ID2% return w:: ControlSend,ahk_parent,{w Down},ahk_id %AHK_ID2% ControlSend,ahk_parent,{w Down},ahk_id %AHK_ID% KeyWait,w ControlSend,ahk_parent,{w up},ahk_id %AHK_ID2% ControlSend,ahk_parent,{w up},ahk_id %AHK_ID% return 原作者 @wo小熊o 这位大佬写的,然后可以2个窗口多开,我在基础上加的数字,但是每次还是只能控制2个窗口。不知道是哪里错误了呢
  • 10
    我想用空格键触发 x键盘 10豪秒过后再触发原本的空格键 也相当于说空格触发了x与空格键,只不过x在前一点点,就简单的触发命令,脑瓜疼。 是直接复制进去吗 记事本模式,求助。
  • 7
    给大佬递烟。。。我的需求是用了68键键盘,没有f1~f9那一行按键了,我自己映射了esc是~键,有时候又想把esc映射取消,让esc键恢复原本的按键... 请问如何实现暂停指定按键的映射 代码如下 Capslock & 1::F1 Capslock & 2::F2 Capslock & 3::F3 Capslock & 4::F4 Capslock & 5::F5 Capslock & 6::F6 Capslock & 7::F7 Capslock & 8::F8 Capslock & 9::F9 Capslock & 0::F10 Capslock & -::F11 Capslock & =::F12 Capslock & ESC::esc ESC::` ;就是最后这俩,想要按下某按键后,esc恢复原
  • 4
    最后一行就是输出的结果,怎么可以让这两个setTimer互不影响的执行send呢
  • 8
    直接传参提示错误,各位大佬帮帮忙 F1::{ global flag_f flag_f := !flag_f MouseGetPos &MouseX, &MouseY X1:=MouseX Y1:=MouseY if (flag_f := !flag_f) SetTimer lianXu(X1, Y1), 7700 ;设定时钟 else SetTimer lianXu(X1, Y1), 0 } lianXu(X1, Y1) { MouseMove X1, Y1 Sleep 2100 }
  • 0
    开启自动化之旅 AutoHotkey(AHK)是一款开源的强大脚本语言,经过二十年的发展,它不仅能实现按键映射和自定义操作,还能广泛应用于文档图像处理、操作系统控制、网页自动化、游戏脚本等多个领域。凭借强大的社区支持和多年的积累,AHK能够帮助你高效解决日常工作中的各种自动化需求,让一切变得更简单。 为什么要学AHK这类编程语言? Ai 时代的新机遇:随着Ai工具飞速发展,将Ai与AHK的自动化脚本结合,让更多人可以跨越技术门槛实现个人成
    dbgba8 1-26
  • 6
    有没有大佬们,能会写这样的 ,就是魔兽世界 2个窗口切换 F1 是第一个游戏窗口,F2是第2个游戏窗口 ,再或者是F1 可以实现 游戏窗口1和游戏窗口2之间的切换。
    0385637 10-20
  • 18
    游戏包括网游:apex,单机:大镖客2、战神4、2077 只有a::b这种一行的指令能生效,多行指令用send、sendplay、sendinput都无效 apex里按住a,会一顿一顿地按b;倒是英雄联盟能正确生效 脚本是管理员模式运行、游戏也是窗口化 #InstallKeybdHook a:: sendplay {d} q:: sendinput d s:: send {d} 这几种方式都无效 求教
  • 3
    我用工具获取了steam的窗口句柄,写进脚本之后无法关闭。有谁写过了吗?
  • 23
    autohotkey_H解压后再怎么操作才能使用
  • 3
    在记事本里测试都是成功的,在其他窗口也没问题,唯独到了诛仙里一点反应都没有。关掉杀毒软件也没用。怀疑是游戏的自我保护模块作怪,不知有什么办法
  • 14
    表述的好像不清楚,我想实现按Q一下就是“滚轮上”,再按一下Q就是“滚轮下”,如此循环往复,只要按Q就循环实现滚轮上下,这样的想法能实现吗,或者说有别的软件能实现吗 希望大佬们能给些指点
    🐬Oceano 1-13
  • 3
    AAA:= [ ["t","k","j","q","z","f","o","v","s"], ["c","b","l","w","n","g","p","d","r"], ["i","a","u","h","m","y","x","e","k"], ["w","n","b","g","r","j","o","f","q"] ] i1:=AAA[1][2] ^+!w::Send %i1% 输出错误
    天籁188 1-8
  • 2
    我想弄一个按住大写键之后可以临时把werasdzxc这几个键变成数字键的功能,因为我的键盘是86键的,没有小键盘区域,所以进行需要输入大量数字的场合就会很麻烦,因为横着那一排数字属实是不太习惯,5后面的数字基本就不能做到单手精准盲打了,让GPT给我生成了很多次了,十多次无一例外全部报错,有没有大佬知道怎么做
  • 3
    AHK V2 pause怎么恢复 如图快捷键按了 暂停后, 显示已暂停,但是再按END也不恢复 一定要鼠标去点勾掉暂停吗?
  • 10
    我在github的https://github.com/ddxoft/master下载了dd,然后找到了两个dll 一个DD64.dll,一个DD94687.64.dll, 这是代码, ;DllCall("LoadLibrary", "Str", "C:\DD64.dll", "Ptr") DllCall("LoadLibrary", "Str", "C:\DD94687.64.dll", "Ptr") F6:: DllCall("DD\DD_btn","Int",4) ;点击右键 DllCall("DD\DD_btn","Int",8) ;松开右键 return F10:: MouseMove 100,300 Return 按F6不生效. 但是也不报错. 有大佬知道吗,网上也没找到多少ahk+dd的文章
  • 3
    大佬们,想请教一个问题,ahk要怎么获取某个像素点的亮度啊,想通过亮度对比来控制启停。
  • 5
    后台找图找不到,后台窗口截屏 返回是黑图,这是什么原因?窗口句柄没问题 . DX。使用DirectX截屏 如果截图的是黑图,请参考这一篇,DirectX截图黑屏的解决办法。 . 制作游戏时,游戏公司使用DirectX软件 绘制的游戏窗口, 后台操作时,必须使用大漠/ 天使/ 乐玩插件 的dx截图模式。 DX游戏窗口,后台模式只接受dx端口的输入。dx图色 dx鼠标 dx键盘, . 按键精灵 tc简单开发 易语言的窗口模式无效。dx绑定模式 由大漠首创,它是大漠最大的贡献。
    GeosDXX 12-26
  • 2
    XButton2:: Loop { GetKeyState,State,XButton2,P If (State="U") ; { Break } if ( GetColor(1693,1270)=="0xACC4CC" ) ; { send 2 } 想在这里加上如果这个坐标识别到以后只执行这个按键就可以。不再执行下面的几个,如果没识别到再执行全部。求助!!!!!!!! if ( GetColor(1772,1269)=="0xB29A8E" ) ; { send 3 } if ( GetColor(1618,1271)=="0x693C32" ) ; { send q } } Return
    双鱼dafd 12-26
  • 4
    想实现的功能是按住鼠标左键鼠标进行小幅度抖动。 #Requires AutoHotkey v2.0 ~LButton:: while GetKeyState("LButton","P") { N := Random(2.0, 3.0) M := -N MouseMove N, N, 2, "R" Sleep 3 MouseMove M, M, 2, "R" Sleep 3 } return
    永远超... 12-23
  • 1
    F11:: MouseGetPos, mouseX, mouseY PixelGetColor, color, %mouseX%, %mouseY%, RGB stringRight color,color,10 ; tooltip, %mouseX%,%mouseY%颜色是:%color% if !A_IsAdmin { Run *RunAs "%A_ScriptFullPath%" ExitApp } #Persistent #NoEnv v_Enable=0 XButton1:: { v_Enable:=!v_Enable If(v_Enable=0) SetTimer, Label0, Off ELSE SetTimer, Label0, 0 } Return Label0: if ( GetColor(1473,1376)=="0x997F6D") ; { loop,1{ Sendinput {v}{v}{v} } return } if ( GetColor(1110,1372)=="0xDBCE6A" && GetColor(1615,1379)=="0x262626") ;超神 { loop,1{ Sendinput {z}{z}{z} } r
    永远超... 12-23
  • 7
    用ControlClick后台发送鼠标点击某个坐标,但是都只在光标当前位置点击,并没有点击脚本的坐标位置! 脚本如下用option的坐标: F3::Pause F2:: loop { ControlClick,,魔兽世界,,,,x821 y493,, sleep 1000 } return 以及加POS使用Control-or-Pos 参数中描述的 X/Y 位置模式也不行 F3::Pause F2:: loop { ControlClick, x821 y493, 魔兽世界,,,,Pos,, sleep 1000 } return 求大佬们帮忙,目的就是想边看电影一边后台发送魔兽世界鼠标点击操作。
    前度菜鸟 12-23
  • 0
    SetCapsLockState "Alwaysoff" CapsLock & WheelUp::Volume_Up CapsLock & WheelDown::Volume_Down 触发之后,滚轮就被锁住了, 浏览网页,文档,资源管理器等就滚不动页面了,求解
    天籁188 12-22
  • 4
    已经可以使用,但美中不足的地方,偶尔抬起f1的时候还会保持20行数,要稍等片刻才能恢复,不知道还能不能优化 SetScrollSpeed(speed) { DllCall("SystemParametersInfo", "UInt", 0x0069, "UInt", speed, "Ptr", 0, "UInt", 3) } F1:: F1 up:: { switch ThisHotkey { case "F1": SetScrollSpeed(20) case "F1 up": SetScrollSpeed(3) } }
    🐬Oceano 12-21
  • 2
    SetScrollSpeed(speed) { DllCall("SystemParametersInfo", "UInt", SPI_SETWHEELSCROLLLINES, "UInt", 0x0060, "Ptr", speed, "UInt", 0) } ^+a::SetScrollSpeed(10) ^+s::SetScrollSpeed(3) 这是半成品,不执行,请高手更正
    天籁188 12-20

  • 发贴红色标题
  • 显示红名
  • 签到六倍经验

赠送补签卡1张,获得[经验书购买权]

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!

友情贴吧