📜  ahk 获取命令行 (1)

📅  最后修改于: 2023-12-03 15:13:17.237000             🧑  作者: Mango

使用 AHK 获取命令行

AHK 是 AutoHotkey 的简称,是一款免费开源的脚本语言,可以用于自动化各种任务,包括获取命令行。下面介绍如何使用 AHK 获取命令行。

获取当前命令行

使用 AHK 获取当前命令行只需一行代码:

CommandLine := DllCall("GetCommandLine", "str")

这里使用 AHK 的内置函数 DllCall 调用 Windows API 函数 GetCommandLine 来获取当前命令行。"str" 参数表示返回值类型是字符串类型。

以下是完整的 AHK 代码片段:

; 获取当前命令行
CommandLine := DllCall("GetCommandLine", "str")
MsgBox %CommandLine%

这段代码将弹出一个提示框,显示当前命令行。

获取指定进程的命令行

有时需要获取指定进程的命令行,例如获取浏览器的命令行,可以使用 AHK 的 Process 类来实现。

以下是获取 Google Chrome 浏览器命令行的 AHK 代码片段:

; 获取 Google Chrome 的命令行
WinGet PID, PID, Google Chrome
Process := DllCall("OpenProcess", "uint", 0x0410, "int", 0, "uint", PID)
BufferSize := 1024, CommandLine := ""
DllCall("psapi\GetProcessImageFileName", "uint", Process, "str", CommandLine, "uint", BufferSize)
CommandLine := SubStr(CommandLine, InStr(CommandLine, "Chrome.exe") + 10)
CommandLine := StrReplace(CommandLine, """", "") ; 去掉双引号
MsgBox %CommandLine%

这段代码首先使用 AHK 的 WinGet 函数获取 Google Chrome 浏览器的进程 ID。然后使用 Windows API 函数 OpenProcess 打开进程句柄,并使用其他 API 函数 GetProcessImageFileName 获取进程的命令行。最后去掉命令行中的双引号即可得到完整的命令行。

总结

通过以上介绍,我们可以看到 AHK 在获取命令行方面非常方便,只需使用一些简单的 API 函数就可以实现。除了获取命令行外,AHK 还可以用于实现自动化任务、快速打开文件等等。如果你还没使用过 AHK,不妨尝试一下,会发现它对于提高工作效率非常有帮助。