autohotkey吧
关注: 4,610 贴子: 15,823

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

  • 目录:
  • 程序设计及人工智能
  • 7
    比如ctrl+C一次性复制内容A 内容B 内容C 以此类推,存储在不同的变量当中(按照复制的顺序),然后ctrl+V依次粘贴出内容A 内容B 内容C 以此类推
    🐬Oceano 17:39
  • 1
    有没有大佬们,能会写这样的 ,就是魔兽世界 2个窗口切换 F1 是第一个游戏窗口,F2是第2个游戏窗口 ,再或者是F1 可以实现 游戏窗口1和游戏窗口2之间的切换。
    🐬Oceano 11:32
  • 3
    各位这是我想要实现的效果 点击右键= ①双击左键 ②进行键盘快捷键 Alt+, ③进行键盘按键 右键→ (也就是word中往前进一个格) ④按键输入中文括号 ()且光标位于括号中 拖动右键选中文本,松开右键后 = ①进行键盘快捷键 Alt+, ②进行键盘按键 右键→ (也就是word中往前进一个格) ③按键输入中文括号 ()且光标位于括号中 这个我用chatgpt一直弄不好,请教一下各位大神,谢谢各位
    紫魚醬 10-15
  • 8
    我只想实现按一下`按住鼠标右键,等我再按一下鼠标右键就取消的功能 ~`:: { Send {RButton down} Sleep 100 } { ControlClick,,{RButton up},ahk_exe WOW.exe} return 写了个这个是有用的,但是如果是大写输入的话按`就会同时输入caps,这个能解决吗?
    始祖球 10-14
  • 0
    易语言。测效率 start=取启动时间() ' finish=取启动时间() 调试输出(到文本(finish - start)) . C语言。测效率 start = clock(); //开始计时 // finish = clock(); //计时结束 printf("运行时间:%f毫秒\n", (float)(finish - start)); //C语言 //cout << "Read 1g ID file time :" << float(finish - start) << " ms " << endl;//C++
    剑仙十号 10-13
  • 8
    我想在电脑桌面上,不改变现有鼠标指针的位置,按下q键在另一个指定的坐标上点击一下, 用ControlClick,好像必须在程序里面才可以点,要怎样可以在桌面上实现呢?
    兇猛肥猫 10-12
  • 1
    脚本里面别的地方用到了MOUSEMOVE,后面跟的是相对坐标,功能正常,但是当我在另一个键的功能下想实现直接点击屏幕上某个固定坐标的时候,使用MOUSEMOVE或者MOUSECLICK 后面接绝对坐标的坐标值,总是报错,提示MOUSEMOVE那行有错,但是如果MOUSECLICK也使用相对坐标的参数,则没有问题,比如 MouseClick, , 0, 200,,0,U,R 这样就不报错,但我想实现的是点击一个绝对坐标,比如1093,944,与鼠标当前坐标无关,该如何解决?
    🐬Oceano 10-12
  • 0
    各位这是我想要实现的效果 点击右键= ①双击左键 ②进行键盘快捷键 Alt+, ③进行键盘按键 右键→ (也就是word中往前进一个格) ④按键输入中文括号 ()且光标位于括号中 拖动右键选中文本,松开右键后 = ①进行键盘快捷键 Alt+, ②进行键盘按键 右键→ (也就是word中往前进一个格) ③按键输入中文括号 ()且光标位于括号中 这个我用chatgpt一直弄不好,请教一下各位大神,谢谢各位
    紫魚醬 10-12
  • 0
    F3冷却时间 2.5秒 瞬发 F4 冷却时间1.5 秒 吟唱时间1秒 F5瞬发 冷却时间10秒 F6 瞬发 冷却时间10秒 开关用鼠标中键 MButton:: Hotkey, %A_ThisHotkey%,, T2 ; if (Enter_ok) { Reload return } Enter_ok:=1
  • 1
    按住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
  • 0
    请用AutoHotkey写一段代码。 我想实现:按一次Q键,就按住鼠标右键;再按一次Q键,就弹起鼠标右键。如此循环 . ```autohotkey #NoEnv SetBatchLines, -1 ; 初始化变量 QPressed := false ; 当按下 Q 键时执行以下操作 q:: ; 如果 Q 键没有被按下,则设置 QPressed 为 true 并按住鼠标右键 if not (QPressed) { QPressed := true mousedown r } else { ; 如果 Q 键已经被按下,则设置 QPressed 为 false 并弹起鼠标右键 QPressed := false mouseup r } return ```
  • 1
    切换输入法。 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
  • 2
    如何判断输入法候选窗口.是否存在?也就是正在输入,但候选词还没有上屏时的状态。 使用下面的方法不行,就算我使用了`DetectHiddenWindows true`,都检测不出来。只检测到正在使用的应用程序,例如记事本。 WinActive("ahk_class <用Windows SPY检测到的信息>") . 旺仔泡泡堂:不要用WinActive,我一惯用WinExist。 我的电脑装了QQ五笔和搜狗拼音输入法,别的没有。我用的是AHk2.0 WinExist("ahk_class QQWubiCandWndII") ;表示按分号进入分号模式出现的候选
  • 441
    为帮助新人尽快入门,特开此贴。新手问题疑惑可贴到此处,看到即答
  • 2
    第二章、易语言字节集 TC: var 内存地址 = 结构体申请内存(数组("byte" = 数据长度, "value" = null)) 结构体释放内存(内存地址) . 其它语言,传入易语言DLL的内存地址, 数据长度,调用 字节集名=指针到字节集(内存地址, 数据长度)’转换成易的字节集变量。 . 内存地址=取变量地址(字节集名[lbk]1])’获得字节集数据的内存地址 数据长度=取字节集长度(字节集名) ’在易语言DLL中,调用以上两个函数,对其它语言 输出字节集变量_的内存地址,
  • 8
    +6 :: Send +{7} ;同时按下Shift和6,输出的是Shift和7,也就是打出来&符号 +7 :: Send {'} ;同时按下Shift和7,输出的是按下 ' 这个键,也就是打出来 ' 现在我把这两行代码写到一起也就是 +6 :: Send +{7} Exit +7 :: Send {'} Exit 最终的效果是,当我同时按下Shift和6时,打出来的是 ' ,也就是说Shift和6输出了Shift和7,然后Shift和7又根据后面的代码输出了 ' 所以怎么样才能让Shift + 6输出的是&而不是'呢?
    MSYes 10-3
  • 4
    shift 被按下(或处于 down 状态)时,小键盘似乎被当做方向键,此时用 +Numpad1::,也不能使 热键 生效, 有办法能解决吗?
    🐬Oceano 10-2
  • 5
    如题。AutoHotkey 2.0版能否判断当前是否存在输入法候选窗口?也就是正在输入但候选词还没有上屏时的状态。请尽量给出V2.0版的代码,最好有比较简单的函数即可判别。如果V2版确实做不到,而V1版有比较简单的判断方法的话也可以看看,我看看能否改为V2版。先谢过各路大神 我尝试过使用下面的方法好像不行,就算我使用了`DetectHiddenWindows true`,都检测不出来,好像只检测到正在使用的应用程序,例如记事本。 ``` autohotkey #HotIf WinActive("ahk_class <
  • 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
  • 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

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

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

扫二维码下载贴吧客户端

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

友情贴吧