-
-
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输出的是&而不是'呢?
-
4shift 被按下(或处于 down 状态)时,小键盘似乎被当做方向键,此时用 +Numpad1::,也不能使 热键 生效, 有办法能解决吗?
-
5如题。AutoHotkey 2.0版能否判断当前是否存在输入法候选窗口?也就是正在输入但候选词还没有上屏时的状态。请尽量给出V2.0版的代码,最好有比较简单的函数即可判别。如果V2版确实做不到,而V1版有比较简单的判断方法的话也可以看看,我看看能否改为V2版。先谢过各路大神 我尝试过使用下面的方法好像不行,就算我使用了`DetectHiddenWindows true`,都检测不出来,好像只检测到正在使用的应用程序,例如记事本。 ``` autohotkey #HotIf WinActive("ahk_class <
-
10
-
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; 但是这个脚本有一个问题,第三行的意思不是等待用户输入一个按键就停止循环吗,然后排除中括号里面的那些
-
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:是一个内建变量,返回系统启动后经过的
-
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某些原因,能操作的按键非常有限,数量紧张,现在某键的单击已经设置了组合热键,想一键多用,能不能给它加个功能,当按下不动达到一定时间,则成为另一个组合热键?具体应该怎么写呢 ?各位有知道的吗,谢谢
-
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
-
33
-
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 我写了一个,但是有弹窗提示,怎样去掉弹窗提示呢
-
3
-
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 }
-
22
-
7不同的ahk之间,实现变量互通,除了剪切板ClipBoard这个变量外 还有哪个类似变量能像ClipBoard这样能直接拿来用?
-
1F4:: 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 我这样写好像不行,不知道哪里问题,大佬们帮我看看? 我是想某块区域屏幕没变,就继续搜索图片,区域屏幕变了就终止循环 搜索图片,搜到图片就继续搜索,没搜到就终止循
-
12
-
12表述的好像不清楚,我想实现按Q一下就是“滚轮上”,再按一下Q就是“滚轮下”,如此循环往复,只要按Q就循环实现滚轮上下,这样的想法能实现吗,或者说有别的软件能实现吗 希望大佬们能给些指点
-
2
-
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
-
3F3:: 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停止。有大佬能指导下吗???
-
5F4:: 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不兼容,还是说我用的软件有缺陷,中文版
-
0大佬们,我用pixelGetColor循环取色时,第一次取色正常,但之后都是0x767676是为什么,取哪儿都是0x767676
-
3自动团队加血可以做到吗?罗技驱动触发
-
3大佬们,我想写按一下Q开始循环1234再按一下Q停止,按一下E开始循环5678再按一下E停止,我自己怎么写都有错误
-
1本地电脑采用 CoordMode "Mouse", "Screen" 定位后移动鼠标已实现相关功能。 但放置在远程桌面目标机运行,刚开始进入远程桌面中运行 一切正常;当远程桌面最小化后鼠标移动就不正常了,无法在后台自动化操作很不方便
-
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 结果疯狂报错。。。不知道为啥,人都傻了
-
9
-
10去年3月份开始发现ahk的,当时用的是1.X版本,发现它的语法一点都不规范,像乱来的 后来发现了2.0,好像不到一个月就直接过渡到2.0,顺便花了点时间把原来的不到1000行代码改成了2.0版本。 现在已经是5000多行代码了,做了几十个功能。 (当然有些功能太复杂,我实在不会,相信99%的人也不会,借用了一些顶级大佬的代码,但95%以上的想法和功能还真是自己写的。不过我的绝大部分代码都不太复杂 我不玩游戏,主要是日常软件的辅助,看到哪个软
-
5
-
0DllCall能调用 win32 API?参数是结构体的.
-
2
-
9连点两下空格,间隔1秒后再按一下V,然后循环以上操作。