标签: autohotkey

什么是灵活的混合python集合对象?

作为一种习惯python的方法,我试图将我的一些代码从Autohotkey_L转换为python .
我立刻遇到了大量的收集对象选择.
你能不能帮我找出一个内置式或第三方提供的具有尽可能多的类型,AutoHotkey_L的功能对象类型方法.

AutoHotkey_L对象具有python dict,list和类实例的功能.

我知道空间和速度存在权衡,但我只对功能而不是优化问题感兴趣.

python autohotkey data-structures

0
推荐指数
1
解决办法
758
查看次数

从命令行启动 rdp 连接以在脚本中使用(在 Windows 上)

我的桌面上有一个指向远程桌面连接的图标

链接是“test.rdp”

我想从脚本中的 autohotkey 开始。

关于如何从命令行启动它的任何想法?

windows command-line rdp autohotkey

0
推荐指数
1
解决办法
1034
查看次数

使用Xbox360控制器启动和关闭Steam Big Picture

我对这个程序很新,并没有真正处理过很多脚本,所以我不知道从哪里开始.我需要做的是为我的Xbox360控制器设置热键,当保持(持续3秒)时启动Steam Big Picture,然后当该程序运行并保持键(持续3秒)Big Picture将关闭,如果当前不在一个游戏.

这个脚本完成了我想要它做的一半......

#IfWinNotExist, Steam ahk_class CUIEngineWin32
Joy7::
Process, Exist, Steam.exe
if ErrorLevel
Run, "steam://open/bigpicture"
else
Run, "D:\Program Files (x86)\Steam\Steam.exe" -bigpicture
Run Code Online (Sandbox Code Playgroud)

我唯一想改变的是:

  • Joy7将更改为Xbox360"X"/指南按​​钮
  • Joy7(或以上键)保持3秒钟
  • 在Big Picture中(而不是在游戏中)按住键3秒钟以关闭/返回桌面

有关如何做到这一点的任何想法?任何帮助将不胜感激,谢谢!

autohotkey

0
推荐指数
1
解决办法
1785
查看次数

使用自动热键刷新顶部(活动)选项卡

我从未使用过它,经过几次尝试后,我觉得我永远不会得到它。我觉得这个小程序有潜力,但在发现 chrome 有多个子窗口后,我想我不知道发生了什么,所以请帮助...

我需要一个脚本,当我按下Ctrl+R而不切换到 chrome 时,它​​会在 chrome 的当前选项卡上重新加载页面,然后该键几乎没有变化来实际切换和刷新。比如说 Numpad 1 只用于刷新,Numpad 2 用于切换和刷新。

autohotkey google-chrome

0
推荐指数
1
解决办法
2295
查看次数

在 AHK 脚本中处理循环

我一直在想 - 在 ahk 脚本中处理循环的最佳方法是什么?

例如,而不是:

; Collect results 1
Sleep 1000
Addr1 := IE.document.getElementsByClassName("name")[0].innertext
String_Object := StrSplit(addr1, "`,")
If (Substr(Addr1, 1, 2) = "MK")
{
Addr1 := String_Object[2] . "," . Trim(String_Object[3]) . "," . PostCode
MsgBox, %Addr1%
}
Else
{
Addr1 := String_Object[1] . "," . Trim(String_Object[2]) . "," . PostCode
MsgBox, %Addr1%
}


; Collect results 2
Sleep 1000
Addr2 := IE.document.getElementsByClassName("name")[1].innertext
String_Object := StrSplit(addr2, "`,")
If (Substr(Addr2, 1, 2) = "MK")
{
Addr2 := String_Object[2] . …
Run Code Online (Sandbox Code Playgroud)

autohotkey

0
推荐指数
1
解决办法
2380
查看次数

对于专家,在Windows资源管理器中捕获文件的完整路径

因不清楚问题而终止吗?所以我有答案吗?

需要在Windows资源管理器中单击文件上的鼠标左键,您会收到一条包含完整文件路径的消息。

示例:如果单击文件win.ini上的鼠标,则显示MsgBox:c:\ windows \ win.ini

OBS:拜托,我需要准备好示例答案,因为我的英语太糟糕了,而且我是编程的新手。

autohotkey windows-explorer capture filepath file-properties

0
推荐指数
1
解决办法
1296
查看次数

在工作目录中获取完整的文件路径

#NoEnv
SetWorkingDir %A_ScriptDir%

FileRead, string, file.txt
MsgBox,0,, %string%
Run Code Online (Sandbox Code Playgroud)

因为:

SetWorkingDir %A_ScriptDir%
Run Code Online (Sandbox Code Playgroud)

我可以引用file.txt而不是明确它的路径,但对于一个项目,我需要完整的文件路径,但我不知道如何得到它.理想情况下,我不想使用FileSelectFile,因为这只会为用户添加另一个步骤.

有解决方案吗

autohotkey

0
推荐指数
1
解决办法
539
查看次数

在 Visual Studio Code 中创建格式化程序

当我尝试自动缩进 .ahk 文件时,我收到“没有安装‘ahk’文件的格式化程序”。如何创建一个基本的格式化程序?

autohotkey visual-studio-code vscode-extensions

0
推荐指数
1
解决办法
2682
查看次数

此变量尚未分配值(全局变量)

我刚刚发现,如果我尝试在简单的热键之后声明的函数中使用全局变量,则会出现警告,指出该全局变量没有值。

插图:

代码和警告图像

在此示例中,当我按Shift + l时会出现警告。

谁能解释?

autohotkey

0
推荐指数
1
解决办法
178
查看次数

如何使用 Autohotkey 优雅地关闭程序

我有一个脚本,用于通过提供完整的 exe 路径(例如“c:\run\myprogram.exe”)来关闭程序,并且我希望它能够正常关闭它。我已经成功地使用Process, Close, %hWnd%or强制执行此WinClose, ahk_id %iId%操作,但我一直在寻找一种方法,该方法可以通过其完整路径关闭给定程序,然后优雅地关闭它而不强制关闭它。

到目前为止,我有这个脚本:

closeByExactPathToEXE(path) {
 for process in ComObjGet("winmgmts:").ExecQuery("Select * from Win32_Process") {
 	If (ePath  := process.ExecutablePath){
 
       iName  := process.Name
       iId    := process.ProcessId
       hWnd   := process.Handle
       ePath  := process.ExecutablePath
       SplitPath, ePath,, oPath,,,oDrive
      ;MsgBox %  "Letter:" oDrive "`nPath: "oPath "`npath" path
      
       If !InStr(ePath,path)
           Continue
 
       Loop, parse, exCludes, CSV
         If (iName = A_LoopField ) 	
            Continue
 
      ;My NO!!!
       If (iId = AmiNO) or (iName = A_ScriptName) 
           continue
 		
       ;~ MsgBox %  "Letter:" oDrive "`nPath: "oPath …
Run Code Online (Sandbox Code Playgroud)

autohotkey

0
推荐指数
1
解决办法
6343
查看次数

我的 AutoHotKey 脚本如何相应地启动批处理脚本?

这个脚本应该让我从 Windows 切换到 Linux(VM),反之亦然:

Pause::vmStart()
return

runVM := false
linux := false

vmStart()
{
    If (!runVM and !linux) {
        Run, C:\Users\patrick\dev-vm\PS.cmd
        runVM := true
        sleep, 18000
    }
    If (!linux and !WinExist("DevVM - 127.0.0.1:23389 - RDP")) {
        Run, C:\Users\patrick\dev-vm\RDP.cmd
    }
    if (!linux) {
        WinShow, DevVM - 127.0.0.1:23389 - RDP
        WinActivate, DevVM - 127.0.0.1:23389 - RDP
    }
    Send ^!{CtrlBreak}
    linux := !linux
}
Run Code Online (Sandbox Code Playgroud)
  • 当我在 Windows 中时,它需要先激活我的 RDP 窗口(工作正常)。
  • 当我在 Windows 中并且 VM 没有用 PS.cmd 启动时,它应该启动它(这也有效,大约需要 18 秒)
  • 使用 ^!{CtrlBreak} 是正常的开关也可以使用。

我认为我的括号/函数/布尔定义有问题。你发现错误了吗?

rdp autohotkey virtual-machine

0
推荐指数
1
解决办法
92
查看次数

Autohotkey:如何在#ifwinactive 之后声明全局变量

当我在#ifwinactive 之后声明一个全局变量时,会弹出一条错误消息,显示该变量未声明。

我有一个很长的脚本,里面有很多#ifwinactive ahk_exe xxx。在这些代码下面,我想声明一个全局变量。但这不起作用。每当我运行脚本时,它都会警告我未声明全局变量。这是我的脚本的简要介绍。

在脚本的顶部,我有这些环境设置:

#NoEnv  
#Warn  
SendMode Input 
SetWorkingDir %A_ScriptDir%
SetTitleMatchMode, 2
Run Code Online (Sandbox Code Playgroud)

然后我有许多特定于窗口的热键:

#ifwinactive ahk_exe Explorer.EXE
;some hotkeys
#ifwinactive ahk_exe WINWORD.EXE
;some extra hotkeys
;etc.
Run Code Online (Sandbox Code Playgroud)

在底部,我尝试声明一个全局变量,这就是发生错误的地方:

#ifwinactive
a := 1
^p::
    if (a != 1){
        a := 1
    } else {
        a := 0
    }
return 

#if winactive("- YouTube -") and a != 1
    p::msgbox,Yes
#if a = 1 and winactive("- YouTube -")
    p::msgbox,no
#if
Run Code Online (Sandbox Code Playgroud)

variables if-statement autohotkey global-variables declare

0
推荐指数
1
解决办法
405
查看次数