标题: [问题求助] 在powershell中执行ahk的代码遇到的问题 [打印本页]
作者: 小白龙 时间: 2024-1-10 19:32 标题: 在powershell中执行ahk的代码遇到的问题
本帖最后由 小白龙 于 2024-1-10 19:34 编辑
不知道有没有人分享过, 在powershell上执行ahk代码可以这么简单, 先从下面链接下载dll放到桌面, 然后执行代码即可
https://www.nuget.org/packages/AutoHotkey.Interop
开源地址:https://github.com/kaiser-chris/AutoHotkey.Interop
现在遇到一个问题, 这个DLL体积有点大,好像打包了两个版本的dll,一个x86的一个x64, 执行时, 会在临时文件夹中解包出对应的dll,
而我又不用x86, 只用x64的, 怎样修改源代码只留下x64的dll? 另外解压也需要时间, 怎样实现不解包到临时文件夹, 而是在当前文件夹下直接调用? 这样应该就快一些了, 求路过大佬支招, 感谢!- Add-Type -Path "$HOME\desktop\AutoHotkey.Interop.dll"
-
- #create an autohtkey engine.
- $ahk = New-Object AutoHotkey.Interop.AutoHotkeyEngine
-
- $code = @'
- SayHello(name)
- {
- MsgBox, Hello %name%
- }
- '@
- $ahk.LoadScript($code)
- $ahk.ExecFunction("SayHello", "lucy")
复制代码
作者: Five66 时间: 2024-1-20 14:49
试试将源码包src目录里的AutoHotkey.Interop单独解压出来
用文本方式打开AutoHotkey.Interop.csproj
将79-82行的去掉后用dotnet之类的重新编译
作者: 小白龙 时间: 2024-1-20 19:11
回复 2# Five66
多谢大佬指导, 我没有装VS, 能编译吗?
作者: 小白龙 时间: 2024-1-20 19:20
回复 2# Five66
powershell的 add-type 命令也支持将C#代码生成dll 但是, 懂的太少, 搞不定
作者: Five66 时间: 2024-1-21 00:45
powershell的 add-type 命令基于单文件的
像这种基于项目的多文件得用生成系统
不一定要用vs
dotnet或者直接用系统自带的msbuild也行(安装了对应生成目标的话)
例如(路径换成自己的)- "%systemroot%\Microsoft.NET\Framework64\v4.0.30319\msbuild" /p:Configuration=Release
复制代码
注释去掉资源引用后的源码http://ybshare.com/download/ibpvfziyt5
作者: 小白龙 时间: 2024-1-21 08:49
回复 5# Five66
多谢大佬指导, 我看下面注释掉的块中有 v2_AutoHotkey.dll , 看来也把v2的DLL也嵌入了? 难道还能执行V2版的AutoHotkey代码吗? 如果我的代码是v2的,那怎么切换版本呢? 我看解压到临时文件夹中的dll, 并没有v2_AutoHotkey.dll的情况
<!--
<EmbeddedResource Include="x64\AutoHotkey.dll" />
<EmbeddedResource Include="x86\AutoHotkey.dll" />
<EmbeddedResource Include="x64\v2_AutoHotkey.dll" />
<EmbeddedResource Include="x86\v2_AutoHotkey.dll" />
-->
作者: Five66 时间: 2024-1-21 12:26
回复 6# 小白龙
好像是通过创建对象(实例)时的参数控制的,无参数时为默认版本1
参数是个AutoHotKeyVersion枚举,ps如果支持的话,可以直接用字符串"1"或"2"
作者: 小白龙 时间: 2024-1-21 14:51
回复 7# Five66
多谢大佬, 确实可以
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |