V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
itakeman
V2EX  ›  程序员

发现 autohotkey 这东西把 Go 写的命令行包装成 GUI 真是神器

  •  1
     
  •   itakeman · 1 天前 · 1984 次点击

    自己用 Go 语言写了一个命令行,感觉老是终端调用很麻烦,就想着包装成图形界面,后面看了以下 Go 语言有什么 Gui 框架

    以前试过 Godot+Go 语言写界面,那界面叫一个粗糙,中途也尝试过 aardio+Go 语言方式,老是出错,没耐心放弃了

    现在看了一下有:Fyne 、Walk 、GioUi 、wails , wails 还要会前端,我不会。。。。 Walk 不用会前端,好像很久没更新,放弃 Fyne 、GioUi 这两个可以开发 win 、linux 、mac 、安卓、ios ,还可以,后面弄了一下,各种出错

    一来火,谷歌狂找替代,发现 autohotkey 这东西还不错,就想看这东西能不能调用我的命令行,包装成界面,并且编译成 exe ,发现还可以哟。 594Kb 这打包成 exe 才 1.3M ,运行后占用内存 2.5M ,Upx 压缩一下后,exe 占用 594kb ,妙啊

    后面信心大涨,学着用 GioUi 重写,自己不够聪明各种报错,放弃。学着用 fyne 重写界面调用命令行,编译后 23Mb ,Upx 压缩后 8.61Mb ,运行占用内存 181.1Mb ,我天

    还是写成命令行+authotkey 这种香,

    有像我这样的兄弟吗?还有更骚的操作推荐吗?推荐一下,大家一起学习一下

    21 条回复    2025-09-25 00:02:42 +08:00
    iorilu
        1
    iorilu  
       1 天前
    现在前端都用 ai 写阿, 尤其你把命令行的接口告诉 ai, 很容易整出一个

    用 wails, 主要前端比较美观
    wakarimasen
        2
    wakarimasen  
       1 天前
    如果不需要分发直接起 HTTP server 然后访问 localhost:[port]
    Tomatopotato
        3
    Tomatopotato  
       1 天前
    可以看看 ahk 做出的界面吗
    Tomatopotato
        4
    Tomatopotato  
       1 天前
    @wakarimasen 这确实也是个思路。直接在 go 程序里写个服务器,写个简单前端网页,打包出 exe ,双击直接跳转浏览器,相当于用浏览器当 gui 了。
    roundgis
        5
    roundgis  
       1 天前 via Android
    我以前用过 autoit 写界面
    itakeman
        6
    itakeman  
    OP
       1 天前 via Android
    @iorilu 前端完全没摸过,主要不会啊,怎么个过程我都不清楚
    itakeman
        7
    itakeman  
    OP
       1 天前 via Android
    @Tomatopotato 懒得上传了,就写了一个控制智能开关的命令行,一个界面上带了开启关闭按钮,还有设置时间间隔、时间点定时开启关闭
    itakeman
        8
    itakeman  
    OP
       1 天前 via Android
    @roundgis 尝试 ai 写过,就这个 autohotkey 运行起来了,打包也小,我就感觉挺满意了
    itakeman
        9
    itakeman  
    OP
       1 天前 via Android
    @wakarimasen 浏览器访问也不是很方便,我感觉就想着写着界面,最好安卓、win 能一起就更好了
    Donduck
        10
    Donduck  
       1 天前
    AHK 也不是一个跨平台的东西啊
    itakeman
        11
    itakeman  
    OP
       1 天前 via Android
    @Donduck 所以我后面用 fyne 重写了,但是随随便便一个接近 hello world 的界面,运行起来都差不多 180Mb 运行内存了。。
    czyt
        12
    czyt  
       1 天前
    我用 autoit
    iorilu
        13
    iorilu  
       15 小时 46 分钟前
    @itakeman 现在都 ai 搞得, 你不会还没用上 ai 写代码把, 学习下吧, 比你折腾其他玩意强

    现在我基本明白了

    搞 gui 即便就两条路

    要么选择该语言原生 gui, 如果有的话, 要么用 webview+web 那套

    其他都瞎折腾没意义
    yyysuo
        14
    yyysuo  
       15 小时 25 分钟前
    @itakeman go 里面写 api ,静态单文件 html 调用 api 。vibe coding ,只需要描述自己的需求就好了,报错就扔给 ai ,可以的。
    kasusa
        15
    kasusa  
       14 小时 6 分钟前   ❤️ 1
    https://github.com/cornradio/ahkshortcut
    都说到 ahk 了 我推荐一下自己写的小工具。
    用这个你可以把任何命令行直接变成快捷键。
    Luckykeeper
        16
    Luckykeeper  
       13 小时 37 分钟前
    挺像的,前端苦手,最早是用的 Fyne ,后来去看了看 Godot + Go 的方案看着挺不错,稍微学了下感觉没有 Fyne 好看,于是去学了 Flutter ,现在是 Flutter + Go ,OP 不妨去试一下 Flutter ,或许有人说 Flutter 选了 Dart 作为开发语言是败笔,但是从我使用感受来看,我觉得 Dart 对于写 Go 的上手难度比 JS 那套低很多,界面做出来又好看(缺点是对上古浏览器的兼容以及加载速度这块,重一些),学会了 Flutter 还可以顺手写写客户端,很爽

    实践:Devops ,用 Go + Fyne 写过类 Ansible 的自动部署工具( C/S ),Go + Flutter 写了 k8s 的容器管理和离线升级平台(C/S),Go + Flutter 写了 k8s 微服务(B/S)等等,都很好用,自从会写 Flutter 之后就把 Fyne 扔了,太香了,想打客户端就打客户端,想打 web 包就打 web 包

    附一张图康康效果:

    https://youke1.picui.cn/s1/2025/09/24/68d35bb093a8b.png
    itakeman
        17
    itakeman  
    OP
       38 分钟前
    @iorilu @iorilu 有用过,就是我是业余学习的编程。完全不了解前端写代码的整过过程,自己懂得东西,有时候问 ai 都能写错,更不用说不懂的东西了,想问 ai 都无从下手

    本来想选择原生的,性能也不咋地,想着这样骚操作也能用,就不在乎了
    itakeman
        18
    itakeman  
    OP
       37 分钟前
    @yyysuo 感谢提示,有空试一下可行性
    itakeman
        19
    itakeman  
    OP
       36 分钟前
    @kasusa 哇,还有这样的神器啊,好东西啊
    itakeman
        20
    itakeman  
    OP
       32 分钟前
    @Luckykeeper 为了跨平台,我学习了很多,go 语言也是因为这个才学习的。为了写 ui 我最早就是学了一部分 Flutter ,因为不是从事这行业,时间也有限。学到一半,后面没时间久了就慢慢放弃了,现在拿起来都没什么勇气,感谢你的鼓励,突然有那么点动力重新拾起来
    itakeman
        21
    itakeman  
    OP
       31 分钟前
    @Luckykeeper 另外请教一下,Flutter + Go 交互是不是就 go 开启 web 服务,flutter 进行请求,如果这样感觉不是很完美
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1507 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:33 · PVG 00:33 · LAX 09:33 · JFK 12:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.