autohotkey吧
关注: 4,600 贴子: 15,765

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

  • 目录:
  • 程序设计及人工智能
  • 5
    如题。AutoHotkey 2.0版能否判断当前是否存在输入法候选窗口?也就是正在输入但候选词还没有上屏时的状态。请尽量给出V2.0版的代码,最好有比较简单的函数即可判别。如果V2版确实做不到,而V1版有比较简单的判断方法的话也可以看看,我看看能否改为V2版。先谢过各路大神 我尝试过使用下面的方法好像不行,就算我使用了`DetectHiddenWindows true`,都检测不出来,好像只检测到正在使用的应用程序,例如记事本。 ``` autohotkey #HotIf WinActive("ahk_class <
  • 3
    我只想实现按一下`按住鼠标右键,等我再按一下鼠标右键就取消的功能 ~`:: { Send {RButton down} Sleep 100 } { ControlClick,,{RButton up},ahk_exe WOW.exe} return 写了个这个是有用的,但是如果是大写输入的话按`就会同时输入caps,这个能解决吗?
  • 1
    请用c++写一段代码。调用win32 api,获取记事本_文本光标位置的坐标 . #include <iostream> #include <windows.h> int main() { HWND hwnd = FindWindow(TEXT("Notepad"), NULL); if (hwnd != NULL) { DWORD threadId; GetWindowThreadProcessId(hwnd, &threadId); HWND hEdit = FindWindowEx(hwnd, NULL, TEXT("Edit"), NULL); if (hEdit != NULL) { CONSOLE_SCREEN_BUFFER_INFO csbi; HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE); if (GetConsoleScreenBufferInfo(hStdOut, &csbi)) { COORD cursorPosition = csbi.dwCursorPosition; std::cout << "记
  • 9
    我网上抄了一段代码: ~$Q:: SetTimer,ok,on Input, SingleKey, L1 I, {LControl}{RControl}{LAlt}{RAlt}{LShift}{RShift}{LWin}{RWin}{AppsKey}{F1}{F2}{F3}{F4}{F5}{F6}{F7}{F8}{F9}{F10}{F11}{F12}{Left}{Right}{Up}{Down}{Home}{End}{PgUp}{PgDn}{Del}{Ins}{BS}{Capslock}{Numlock}{PrintScreen}{Pause} if ErrorLevel SetTimer,ok,off return ok: Send {Q down} Sleep 500 send {Q up} return 意思是按Q后,循环输出Q;再按其他键时,停止循环Q; 但是这个脚本有一个问题,第三行的意思不是等待用户输入一个按键就停止循环吗,然后排除中括号里面的那些
    🐬Oceano 9-27
  • 2
    #Requires AutoHotkey v2 ; 双击鼠标左键关闭当前Chrome标签 ~LButton:: { static lastClickTime := 0 ; 获取当前时间 currentTime := A_TickCount ; 计算两次点击的时间间隔 if (currentTime - lastClickTime < 300) { ; 检查活动窗口是否是Chrome if (WinActive("ahk_exe chrome.exe")) { ; 发送快捷键 Ctrl + W 关闭标签 Send("^w") } } lastClickTime := currentTime } 脚本说明: ~LButton:表示监听鼠标左键点击的事件,波浪号(~)表示不阻止事件传递。 A_TickCount:是一个内建变量,返回系统启动后经过的
    🐬Oceano 9-27
  • 0
    ;切换输入法 SwitchIME(dwLayout) { HKL:=DllCall("LoadKeyboardLayout", Str, dwLayout, UInt, 1) ControlGetFocus,ctl,A SendMessage,0x50,0,HKL,%ctl%,A } 例子:(00000804是百度输入法) HKL:=DllCall("LoadKeyboardLayout", Str,"00000804", UInt, 1) ControlGetFocus,ctl,A SendMessage,0x50,0,HKL,%ctl%,A
  • 9
    某些原因,能操作的按键非常有限,数量紧张,现在某键的单击已经设置了组合热键,想一键多用,能不能给它加个功能,当按下不动达到一定时间,则成为另一个组合热键?具体应该怎么写呢 ?各位有知道的吗,谢谢
    含糖0 9-27
  • 7
    希望能在LOL云顶的时候快速退出,但是热键无法在游戏内运行 !m:: loop 3 { run,taskkill /f /im LeagueClient.exe run,taskkill /f /im wegame.exe run,taskkill /f /im "League of Legends.exe" Sleep 500 } return 求解
  • 20
    AHK2.0 CHM格式文件,原来的标题显示是“中文帮助”,在VScode里面的函数上面按F1无法直接定位到具体函数,我用chm工具改成了“help”,就可以支持了。 我将文件上传到了百度网盘,分享给大家。 链接:https://pan.baidu.com/s/1OXKCwlF--yVHmwAgRPxsOQ提取码:8888 再次感谢@選擇愛愛選擇
    jita13 9-23
  • 33
    这个指令时不时就会失效,本来是点击指定位置后再移动回原位的,结果它一失效就导致我鼠标点完指定位置后就回不去了,现在我必须写好几条才能把失效的概率降低,有人知道解决方法吗,写好几条的话不知道在某些场景下会不会出问题,或者造成鼠标移动时的卡顿
    czrshrcg 9-22
  • 1
    不要弹窗提示①后台复制D:\1.xlsx,单元格1行1列的数字 ;//////ahk脚本/////// run,D:\1.xlsxSleep 500excel:=ComObjActive("Excel.Application")Sheet:=excel.Worksheets[lbk]"Sheet1"MsgBox % Sheet.Cells[lbk]1,1[rbk].Value 我写了一个,但是有弹窗提示,怎样去掉弹窗提示呢
    🐬Oceano 9-20
  • 3
    求助各位大佬,我的autohotkey代码,运行不稳定是什么原因?代码为打开表格,取数据,但是在部分电脑上运行正常,在部分电脑上运行会报错:表格能打开(全部用的是WPS软件),但是取不到里面的数据,是空值。如下图分别是代码、报错信息,网上找的代码示例。
  • 1
    #NoEnv #Warn SendMode Input SetWorkingDir %A_ScriptDir% XButton1:: SetTimer,CheckColors, 0 KeyWait, XButton1 SetTimer,CheckColors, Off Return CheckColors: if (GetColor(1269,905)="333E") && (GetColor(1266,905)="8FA2") && (GetColor(1272,905)="EEA2") && (GetColor(1269,902)="7651") && (GetColor(1269,908)="FEFF") { Send, {F2} } Return GetColor(x,y) { CoordMode, Pixel, Screen PixelGetColor, color, x, y, RGB StringRight, color, color, 4 return color }
    Barney 9-18
  • 22
    我发现自从用ahk以来变量就没正常过,用c就没有不正常过
    🐬Oceano 9-18
  • 7
    不同的ahk之间,实现变量互通,除了剪切板ClipBoard这个变量外 还有哪个类似变量能像ClipBoard这样能直接拿来用?
  • 1
    F4:: CoordMode Pixel CoordMode,Mouse loop, 600 { FindText().ImageSearch(x1, Y1, 0, 0, A_ScreenWidth, A_ScreenHeight, Text:="|<>##5$0/0/FFFFFF,8/1/FFFFFF,16/0/FFFFFF") if (ErrorLevel = 0) ;如果找到 { sleep 500 continue ;继续寻找图片 } else ;如果没找到 { break } } ; 继续往下执行 MsgBox, 0, 提示, 你已点击签到。 return 我这样写好像不行,不知道哪里问题,大佬们帮我看看? 我是想某块区域屏幕没变,就继续搜索图片,区域屏幕变了就终止循环 搜索图片,搜到图片就继续搜索,没搜到就终止循
    hgd1338 9-14
  • 12
    比如资源管理器的地址栏,鼠标移动到地址栏上才触发SetTimer。 鼠标离开了地址栏就停止SetTimer,当下次鼠标进入地址栏在触发SetTimer 我查到了一个OnMessage(0x200, "WM_MOUSEMOVE")命令,还有一个 看别人的解释,好像是说它只对自己脚本的gui管用,别的的程序的不管用。 有什么办法吗各位,给个思路也行啊。
  • 12
    表述的好像不清楚,我想实现按Q一下就是“滚轮上”,再按一下Q就是“滚轮下”,如此循环往复,只要按Q就循环实现滚轮上下,这样的想法能实现吗,或者说有别的软件能实现吗 希望大佬们能给些指点
  • 2
    本人小白刚接触AHK一周,这个网页界面点进去文本框里面会有默认值,所以没法用图片抓文本框定位。有啥好的解决思路吗
  • 11
    #IfWinActive ahk_class Progman ;桌面 #IfWinActive ahk_class CabinetWClass ;资源管理器 LWin::return #IfWinActive 比如在桌面和资源管理器限制windows键,结果是只在资源管理器有作用,桌面还是会显示开始菜单。 如果把前两行互换位置,那就只在桌面起作用了,资源管理器里边会显示开始菜单。 反正就是谁排第二谁就起作用,排第一的无效,为什么会这样啊?
  • 0
    求大佬指点 按t/y没反应 t::outputarr(A_ThisHotkey) y::outputarr(A_ThisHotkey) outputarr(keys) { Loop { if (GetKeyState(keys,"P")=0) break send,%keys% Sleep 40 } Return }
  • 1
    后台操作。安卓模拟器不是dx窗口,dx窗口只能显卡渲染,opencv和gdi支持cpu gpu混合渲染。模拟器一般支持的是后两种渲染方式,因为兼容性高。 . 我也是你这个问题,后来图色换了opengl模式,可以后台截图了
  • 14
    有偿代写解答AHK问题, 需要的➕🐧949015371
  • 3
    F3:: SetTimer, TagCX, 0 Return F2:: SetTimer, TagCX2, 0 Return Shift:: SetTimer, TagCX, TagCX2, off Return TagCX: Return TagCX2: Return .。。。。。。 其中,SetTimer, TagCX, 0这个0是什么意思??然后我用这个脚本按F2或者F3都能启动对应脚本,但是按Shift却停不了。我想设置F2或者F3运行对应脚本后,都能按Shift停止。有大佬能指导下吗???
  • 5
    F4:: CoordMode Pixel CoordMode,Mouse loop 600 ;直到循环结束还是没有找到图片就退出脚本(ExitApp),怎么写吗? { 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 } } ;继续往下执行 MsgBox, 0, 提示, 你已点击签到。 return 就是循环结束还是没有找到图片就退出脚本(ExitApp),怎么写吗
  • 12
    取同一个位置,没过几秒重新取同一个位置,坐标就变了,颜色还是一样,我用不是ahk编的取色软件,,取同个位置xy值一直不变,颜色也不变,就是用ahk取色有问题,而我的脚步是通过ahk取色判断的,搞得现在都没法运行了,按ahk里的取色判断,我同个位置的坐标会一直变,是不是我用的软件跟Win11不兼容,还是说我用的软件有缺陷,中文版
    OTA 8-25
  • 0
    大佬们,我用pixelGetColor循环取色时,第一次取色正常,但之后都是0x767676是为什么,取哪儿都是0x767676
    leastNo 8-25
  • 3
    自动团队加血可以做到吗?罗技驱动触发
    fkj1983 8-15
  • 3
    大佬们,我想写按一下Q开始循环1234再按一下Q停止,按一下E开始循环5678再按一下E停止,我自己怎么写都有错误
    始祖球 8-14
  • 1
    本地电脑采用 CoordMode "Mouse", "Screen" 定位后移动鼠标已实现相关功能。 但放置在远程桌面目标机运行,刚开始进入远程桌面中运行 一切正常;当远程桌面最小化后鼠标移动就不正常了,无法在后台自动化操作很不方便
    始祖球 8-14
  • 11
    首先我是个游戏玩家 求不鄙视。。 下面是我的脚本,我希望按我的计时,实现boss时间轴提示。 但是目前的问题是这个脚本每执行一次SplashMyMsg(这个方
  • 3
    前台有软件模拟 硬件模拟 驱动级模拟。send 属于软件模拟 某些游戏不支持软件模拟的,可以选择 硬件模拟 驱动级模拟
  • 7
    大佬们,在永劫无间里面,用AHK无法屏蔽原本的平击(默认鼠标左键)和纵击键(默认鼠标右键)功能怎么办? 就是我写鼠标左键的宏,除了宏的内容还会触发原本的左键的功能,例如: LButton:: xxx return 除了xxx中自己写的宏,还会触发左键原本的平击功能,就像加了~一样,很奇怪
  • 3
    代码如下: hModule := DllCall("LoadLibrary", "Str", "MyFunctions.dll", "Ptr") ; 避免在循环中使用 DllCall 来加载库. dll_path = E:\AI\dd.43390\dd43390.dll if !hLib := DllCall("LoadLibrary", "Str", dll_path, "Ptr") throw "Failed to load dll" if !pFunc :=DllCall("dd43390.dll\DD_key", "Int", 0) throw "Failed to initialise button" t:: { DllCall("dd43390.dll\DD_key", "Int", 303,1) DllCall("dd43390.dll\DD_key", "Int", 303,2) Sleep 50 Dll
  • 1
    大佬们求助 我想实现检测到声音变化以后,ahk帮我按下~号键,然后等待1秒之后按下1键的脚本。 我使用 #Persistent SetTimer, MonitorSound, 100 previousWave := 0 MonitorSound: SoundGet, currentWave, 1 if (currentWave > previousWave) { Send, {`} Sleep 1000 Send, 1 } previousWave := currentWave return 结果疯狂报错。。。不知道为啥,人都傻了
  • 10
    去年3月份开始发现ahk的,当时用的是1.X版本,发现它的语法一点都不规范,像乱来的 后来发现了2.0,好像不到一个月就直接过渡到2.0,顺便花了点时间把原来的不到1000行代码改成了2.0版本。 现在已经是5000多行代码了,做了几十个功能。 (当然有些功能太复杂,我实在不会,相信99%的人也不会,借用了一些顶级大佬的代码,但95%以上的想法和功能还真是自己写的。不过我的绝大部分代码都不太复杂 我不玩游戏,主要是日常软件的辅助,看到哪个软
  • 5
    为什么这串代码会跑进去一个shift
  • 0
    DllCall能调用 win32 API?参数是结构体的.
  • 2
    主要功能为条件判定(颜色识别)-执行动作(按键), 总感觉还差了点什么,看大家有没有好的想法或建议可以提出来, 本来想分享出来给大家试用,便于收集好的想法和存在的BUG, 但因为是一个人查阅了很多学习资料,花费很多时间才写出来的, 所以需要等我找到款合适的加壳软件对源码进行加密后再分享出来给大家。
    qiuyinvsi 8-4
  • 9
    连点两下空格,间隔1秒后再按一下V,然后循环以上操作。
  • 0
    亲爱的autohotkey吧的吧友们:大家好! @剑仙十号 为本吧吧主候选人得票最多者,共计0张真实票数,根据竞选规则,官方最终批准其成为本吧正式吧主。公示期三天。 吧主上任后,请立即填写问卷信息https://iwenjuan.baidu.com/?code=nlec1g,领取各项吧主权益。同时请严格遵守吧主协议 https://tieba.baidu.com/mo/q/newapply/rule?from=task,履行吧主义务,积极投身本吧的发展建设,也请广大吧友进行监督。如出现违规问题,请至贴吧反馈中心进行反馈或者投诉http://tieba.bai
  • 3
    反过来也是一样的,用Alt作为开关,也会触发Ctrl键,有大佬知道怎么解决?
    过来人 7-26

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

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

扫二维码下载贴吧客户端

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

友情贴吧