自动热键 复制文件到剪贴板并粘贴
我正在尝试使用Autohotkey来自动化一些我的工作.与客户相对应时,我使用了一个模板.我已经创建了模板并将其复制到剪贴板上,并使用Autohotkey脚本将其保存到文件中 - 此部分正常工作.我现在想保存剪贴板中的所有内容,加载预先保存的文件,将其粘贴到我的Outlook消息窗口中,然后将保存的剪贴板还原回剪贴板.我尝试了几种方法,没有成功 - 通常,将其复制到Outlook是最初的剪贴板中的任何内容.这是我尝试过的脚本: ^F5:: ClipSaved := ClipboardAll ; Save the entire clipboard to ClipSaved (Not just text) Clipboard = ; Clear the clipboard FileRead, Clipboard, *c MyErr = %ErrorLevel%
4 2023-05-21
编程技术问答社区
Autohotkey-如何将一个GUI链接到一个窗口,使其与父级窗口的行为相同。
我想将GUI链接到某个窗口,因此它可以像它的一部分一样. 这是我的GUI,我希望它遵循计算器(用于测试).如果计算器最小化,则GUI也将最小化. 预先感谢! #SingleInstance Force #Persistent BC = 0 Gui, Color, EEAA99 Gui, Margin , 0, 0 GUI, +AlwaysOnTop -Border -SysMenu -Caption +ToolWindow +Owner Gui, Font, S48 CDefault Bold CBlue, Verdana Gui, Add, Text, BackgroundTrans , Units completed: Gui, Font, S72 CDefault Bold CGreen, Verdana Gui, Add, Text, BackgroundTrans vBuildCounter, %BC% WinSet, TransColor, EEAA99
0 2023-05-19
编程技术问答社区
AutoHotkey中的单行if-condition-assignment
在JavaScript中,我们可以使用以下单线: const condition = true let foo condition && (foo = 'foo') // 👈 one-liner console.log(foo) // foo 我在AHK中尝试了此操作: condition := true condition && (foo := "foo") MsgBox % foo 但是,解释器投掷: 我必须将上述代码更改为以下内容以提示" foo": condition := true ; 👇 three lines if (condition) { foo := "foo" } MsgBox % foo 如何在AHK中的一行中进行此类作业? 解决方案 我们可以使用condition := true condition ? foo := "foo" MsgBox % foo 另外,引用 0x464e :
检测哪个任务栏按钮被点击了(识别目标窗口)
我试图弄清楚如何单击哪个任务栏按钮.具体来说,我想编写一个脚本,通过双击其任务栏按钮可以最大化窗口.这需要知道单击哪个任务栏按钮,我很难找到任何线索. 有人知道如何实现这一目标吗? 解决方案 那是我必须承认的.我不能为您提供最佳练习解决方案,但是这里有一些工作,也许足以满足您的目的: CoordMode, Mouse, Screen ~LButton:: If (A_TimeSincePriorHotkey= taskBarX && mouseY >= taskBarY && mouseX
0 2023-05-08
编程技术问答社区
如何在autohotkey中把一个字符串转换成一个数字?
FormatTime, CurrentMinute , , m将当前分钟分配给变量%CurrentMinute%,其值是字符串,而不是数字.我想对%CurrentMinute%的值进行一些计算,那么我该如何将其转换为数字? 感谢提前的任何帮助! 解决方案 自动keykey会根据需要自动转换数字和字符串. FormatTime, CurrentMinute,, m NextMinute := CurrentMinute + 1
0 2023-04-30
编程技术问答社区
Inno Setup能否发送键盘和鼠标的按压,如果不能,如何使用安装程序来实现?
我是[Microsoft Windows]安装程序和 inno设置但我需要要知道是否可以使用Inno设置(或等效)自动化基于GUI的Windows程序的输入,例如,例如通过单击菜单并选择子项目,例如? 我知道 autoit 和 autohotkey ,以及 NSIS 强烈推荐作为软件包装器/安装程序,我也喜欢讨价还价的一些帕斯卡(Pascal)编程的想法;) ) 最欢迎任何想法或想法: - ) 解决方案 我同意@Deanna, SendInput 功能是模拟您可以获得的用户输入的最佳功能.在以下脚本中,我显示了如何模拟鼠标在绝对屏幕位置(以像素为单位)上的单击.作为一个例子,我试图通过 help/the Inno设置菜单项显示Inno设置的关于框甚至点击该菜单项.因此,这只是鼠标部分(只有有限的功能您可以获得).以此为证明,可以从Inno设置中模拟用户输入: [Setup] AppName=My Program AppVersion=1.5 DefaultDi
0 2023-04-28
编程技术问答社区
Notepad++中的语法高亮:如何将用户定义的语言视为内置语言?
这是一个非常小的问题,但几个月来一直困扰着我.我花了几个小时才能谷歌搜索. 要启用Notepad ++中的.AHK文件的语法,我已经下载并导入了一个.xml文件的autohotkey文件.问题是 - 要启用此突出显示 - 我必须从"语言"下拉列表中手动选择它.每当打开一个.ahk文件时,我都希望启用它,就像其他各种语言一样. 我尝试在样式配置器中添加.ahk扩展名为自动语言,这对我无济于事.有任何想法吗?我不能成为第一个对此感到烦恼的人,但是我无法成功地询问Google. 解决方案 它应该工作.再次检查: 转到Settings → Style Configurator,选择您的语言并添加User ext. ahk扩展(无点!). 如果是用户定义的语言,请转到Language → Define your language,然后从下拉列表中选择您的语言,然后在名为Ext.的文本框中,添加您的" ahk"扩展名. 确保仅将扩展名定义为Autohotkey,而不是同
0 2023-04-27
编程技术问答社区
有没有人有一个Notepad++的插件,可以生成UUIDs并插入它们
我经常需要将uuid插入我在记事本++中编辑的文件中.有人有宏还是添加.或Autohotkey脚本? 解决方案 从 plugin noreferrer "> >,然后配置以在下面运行简单的Python脚本. 使用快捷映射器将密钥组合分配给插件命令. import uuid import sys # make a random UUID sys.stdout.write(str(uuid.uuid4()).upper()) 其他解决方案 npptoolbucket也做得很好. http://sourceforge.net/71f5e965 其他解决方案 它不是壮观的(有缺陷),但看起来可以完成工作.
2 2023-04-27
编程技术问答社区
ffmpeg保留原始文件日期?
我使用此批次切断Win7中创建新文件的一堆MP4文件的开始的6秒.它运行良好,但是输出文件的日期是新的.如何保持原始约会?但是我不想重新编码MP4文件,太多了,太慢了.感谢任何回应. for %% a in("*.mp4")do ffmpeg -i" %% a" -ss 6 -vcodec副本-acodec副本" newfiles \ %% 〜na.mp4" 解决方案 您可以使用PowerShell更改文件日期: powershell (Get-Item -LiteralPath 'out.mp4').CreationTime = (Get-Item -LiteralPath 'in.mkv').CreationTime powershell (Get-Item -LiteralPath 'out.mp4').LastWriteTime = (Get-Item -LiteralPath 'in.mkv').LastWriteTime powershell (Get-Ite
34 2023-04-20
编程技术问答社区
用自动热键捕捉右键+左键;意外行为
我想捕获关键事件"按下右鼠标按钮,然后按下左鼠标按钮". Autohotkey没问题.但是,我仍在允许正确的小鼠钥匙独自工作时遇到麻烦. 1)这有效: RButton & LButton:: Send X Return 正常工作: 如果我按右键按钮,则将左鼠标按钮," X"发送到活动窗口 右键单击事件由Authotkey捕获: no 单独按下鼠标按钮时出现上下文菜单.这是预期的结果 2)这起作用 ~RButton & LButton:: Send Y Return 正常工作: 如果我按右鼠标按钮,则将左鼠标按钮," y"发送到活动窗口 右键单击事件不会由Authotkey捕获:上下文菜单 di di di dim 当我单独按右鼠标按钮或与左键一起按下右键时.这是预期的结果 3)现在,我想根据活动窗口做不同的事情. 这不起作用(小心:这将禁用每个应用程序中的righ-click) #If WinActive(
8 2023-04-01
编程技术问答社区
Autohotkey : 剪贴板将制表符转换成空格
我有一个复制到剪贴板中的代码段.粘贴它看起来像这样.其中[TAB]是实际标签缩号 [tab] [tab][tab] [tab][tab][tab] [tab][tab][tab][tab] [tab][tab][tab][tab][tab] ; 我想按Autohotkey自动将代码段标准化.因此,如果每行都有一个[选项卡],请将其删除. 然后将每个[TAB]转换为2个空间[**] ** **** ****** ******** ; 所以一般的工作流程是: 将代码复制到剪贴板 按Autohotkey 粘贴新格式的内容 autohotkey的伪代码看起来像 按行挖掘每个剪贴板内容 如果每个项目共享等同数的[TAB]空间,请
10 2023-03-31
编程技术问答社区
media player classic-jump to point in video/audio programmatically
在Media Player Classic中,我找到了一种方法,可以通过编程方式跳到视频/音频中的一个点,避免使用Go To...框. 跳跃距离可在 option 和HKEY_CURRENT_USER\Software\MPC-HC\MPC-HC\Settings (JumpDistL/JumpDistM/JumpDistS). 我要做的是在媒体播放器经典的地址空间中找到跳跃距离,并设置大跳跃距离的价值 如果将其应用于经过的时间,您将获得所需的时间. 然后, i然后发送WM_COMMAND带有参数903/904的消息(全部通过autohotkey.我通过检索/解析 edit> edit> edit 控制的内容来获得经过的时间.) 因为跳跃是相对到当前点,所以它是不精确的, 并到达合适的时间的一秒钟之内,但没有到达 每次完全相同. 是否有更直接的方法来实现这一目标,如果没有, 任何媒体播放器都是经典用户/程序员 考虑在论坛上讨论,介绍新的WM_COMMAND消息 可以跳到
8 2023-03-31
编程技术问答社区
如何在AutoHotKey中检查字符串是否包含在一个数组中
我有以下代码: ignored := [ "Rainmeter.exe", "Nimi Places.exe", "mumble.exe" ] a := ignored.HasKey("mumble.exe") MsgBox,,, %a% 它返回0即使字符串在数组中显然存在. 如何测试数组中是否存在字符串值? ps:我也尝试了if var in给出相同的结果. 解决方案 您不能,只使用一个命令.从1.1.22.3. 您必须定义自己的功能 hasValue(haystack, needle) { if(!isObject(haystack)) return false if(haystack.Length()==0) return false for k,v in haystack if(v==needle) return true return
60 2023-03-30
编程技术问答社区
Autohotkey发送错误的按键到控制台
我试图理解这个错误,我正在寻找一个workaroud. 使用此脚本: #NoEnv #SingleInstance force SendMode Input ;Alt+t to send keystrokes !t::Send, /[] 它将正确的击键/ [ ] 发送给所有Windows,但是Windows Console(CMD) 附加信息: 使用autohotkey v1.1.09.02 使用英语美国键盘布局,它发送:' 9 0 使用法国加拿大多语言键盘布局,它发送:é ^ ç 有什么想法可以解决它? 解决方案 尝试以下方法: #NoEnv #SingleInstance force ;SendMode Input ;Alt+t to send keystrokes !t::Send, % chr(047) chr(091) chr(093) Return ,让我知道它是否解决了您的问题. 找到了这个: 我在系统上使用多
24 2023-03-28
编程技术问答社区
如何用自动热键连接字符串阵列
那些使用,知道,知道自动化工具的人AHK是多么有用.. ahk具有函数弦乐或 strsplit()非常快速的拆分字符串到数组元素中. 如果您想操纵形成良好的字符串的某些部分,这将非常有用,但是不幸的是,似乎没有办法! 我花时间搜索,并且有很多旧语法的样本,而这只是不起作用. 我想要的只是 Final_Concatenated_String := StrConcat(My_Array_Of_Strings, "\") 显然不起作用! 那么,简单的问题:如何串联简单的字符串? 解决方案 花费大量时间,找到不起作用的旧语法示例使我很难做到. 简单而快速的解决方案,用于连接目录插入字符串数组: Loop, % folder_path_array.MaxIndex() ; concat string array { folder_path .= folder_path_array[A_Index]"\" } 更高级
26 2023-03-24
编程技术问答社区
如何等待cmd命令结束后再执行下一个任务?
我有一个使用 ctrl + j 运行的脚本 mongod(mongo服务器) mongo(mongo数据库) npm start(启动节点的Web服务器) 打开localhost:3000在Chrome中. 每个任务必须准备就绪,然后才能开始.例如,mongod是Mongo服务器,因此,如果mongo在准备就绪之前启动,则会发生错误. 这是我的脚本: // Start or stop mongod, mongo, node ^j:: IfWinNotExist, npm // start everything up. This must be done in order, but the timing varies. { // Start the mongo server Run, mongod.exe WinGet, active_id, ID, A // Get the i
22 2023-03-24
编程技术问答社区
如何找到一个文件的MD5哈希值?
给出了带有已知文件路径的文件,如何在AHK中为文件生成MD5哈希,而无需重新实现代码中的整个MD5哈希算法,例如 this post? 解决方案 我们可以使用Windows Certutil工具查找MD5 Hash sum并通过 cmd命令使用: CertUtil -hashfile %appdata%/appsettings/app.ini MD5 (注意:用实际的文件路径替换%appdata%/appsettings/app.ini) 最终代码: var:= ComObjCreate("WScript.Shell").Exec("cmd.exe /q /c CertUtil -hashfile %appdata%/appsettings/app.ini MD5").StdOut.ReadAll() MsgBox %var% outputArr := (StrSplit(var , "`r`n")) out:=outputArr[2] MsgBox %ou
34 2023-03-24
编程技术问答社区
如何在AHK Windows 10中生成一个字符串的MD5?
我尝试了data := "abc" MsgBox % MD5(data,StrLen(data)) ; 900150983cd24fb0d6963f7d28e17f72 MD5( ByRef V, L=0 ) { VarSetCapacity( MD5_CTX,104,0 ), DllCall( "advapi32\MD5Init", Str,MD5_CTX ) DllCall( "advapi32\MD5Update", Str,MD5_CTX, Str,V, UInt,L ? L : VarSetCapacity(V) ) DllCall( "advapi32\MD5Final", Str,MD5_CTX ) Loop % StrLen( Hex:="123456789ABCDEF0" ) N := NumGet( MD5_CTX,87+A_Index,"Char"), MD5 .= SubStr(Hex,N>>4,1) . SubStr(Hex,N&15,1) Return MD5
16 2023-03-24
编程技术问答社区
AutoHotkey在复合if语句的同行大括号上窒息了
我有一个问题,即Autohotkey告诉我,在"其他"面前我认为我的代码很好. (直到我将与窗口相关的IF从Pidgin更改为Qutim) ^!p:: IfWinExist ahk_class QWidget, ,qutIM { ;if there is a qutIM-window other than the buddy-list... IfWinNotActive ahk_class QWidget, , qutIM { ;ans it is not active... WinActivate } else { ;the closing bracket in front of the else here puts AHK off... WinMinimize } } else { ;do some stuff with the buddy-list ; [...]
12 2023-03-23
编程技术问答社区