《一个Web开发者的“越狱”:我用AI三天做出了第一个Windows桌面软件》

写在前面

先交代背景:我是个Web前端开发,日常工作就是写Vue、React、Node.js,跟浏览器打交道。浏览器之外的操作系统,对我来说就像一个"黑盒"。

做了那么多年Web开发,我从来没写过一行Windows桌面程序的代码。

C#?不会。

Win32 API?听说过,没用过。

Windows消息机制?那是什么?

但上个月,因为工作需要------我要同时管理20多个交易软件(迅投、快期、券商客户端......),每天早上登录就要花15分钟------我决定尝试用AI来"写"一个Windows桌面自动化工具。

结果让我自己都震惊了。

一个Web开发者的尴尬

说实话,我写过的代码少说也有十几万行了。在Web领域,我不敢说精通,但至少算个熟手。

但面对Windows桌面开发,我的知识储备几乎是零:

  • 怎么做一个系统托盘图标?不知道
  • 怎么注册全局热键(就算窗口不在焦点也能响应)?不知道
  • 怎么找到另一个程序的窗口、往里面填内容、点按钮?完全没概念

我甚至不知道"UI Automation"这个词。

这种感觉很奇怪------明明每天都在写代码,但换了一个赛道,突然就变成了"小白"。

为什么选择AI?

如果是以前,我可能会这样做:

  1. 花一周时间学C#基础
  2. 再花一周学WinForms/WPF
  3. 再花一周研究Windows API和自动化
  4. 然后开始写,边写边踩坑,大概一个月能出个粗糙版本

但我不想等一个月。

而且说实话,我也不想花时间去学那些我可能只用一次的技术------我的主业是Web,我不想为了一个工具"转行"。

于是我想:能不能让AI帮我写这些我不懂的部分?我只负责架构和整合?

事实证明,完全可以。

AI帮我填平了"知识鸿沟"

第一天:从托盘图标开始

我的第一个问题是:"用Python写一个Windows系统托盘应用,支持全局热键。"

AI给出了完整的代码,用了pystray做托盘、keyboard做热键。

我复制、运行。

一个图标出现在右下角。

右键有菜单,按Ctrl+Alt+1有反应。

说实话,那一瞬间我很兴奋。 不是因为代码有多难------这段代码放Web领域,我闭着眼睛都能写------而是因为它跑在"我不熟悉的世界"里,而且跑通了。

AI帮我跨过的第一个坎,不是技术难度,而是心理门槛。它证明了:我不需要懂Win32,也能写出Win32程序。

第二天:最头疼的"窗口自动化"

核心功能:启动一个外部程序(比如"长城证券交易端"),等它加载完,找到账号输入框、密码输入框,填进去,再点登录按钮。

这涉及几个我从没接触过的东西:

  • 进程启动与等待
  • 窗口句柄查找
  • 控件识别与操作
  • 超时与异常处理

我把需求拆开,一个一个问AI:

"怎么用Python启动一个exe,并等待它的窗口出现?"

AI给了subprocess.Popen + pywinauto的示例。

"怎么通过窗口标题找到对应的窗口?"

AI给了Application(backend="uia").connect(title="xxx")

"怎么往文本框里填内容?"

AI给了window.Edit.type_keys("账号")

每个问题,AI都给出了可运行的代码。我只需要把它们拼起来。

最让我意外的是:AI不仅给了代码,还会主动提醒我一些"我不知道我不知道"的事情。

比如我让它写"点登录按钮",它除了生成点击代码,还会提醒我:登录后可能需要等待主界面出现、可能需要关闭公告弹窗、可能需要处理登录失败的提示......

这些东西,如果我自己去踩坑,可能要好几天才能全部遇到。

第三天:打包成真正的"Windows软件"

最后一步:把Python脚本打包成.exe,让同事也能用------他们不可能装Python环境。

这又是一个我不熟悉的领域。

我问AI:"怎么打包成单个exe文件,带图标,不显示控制台窗口?"

AI给了PyInstaller的完整命令,还教我写build.spec配置文件,甚至告诉我去哪里下载UPX来压缩体积。

打包成功的那一刻,我双击生成的KeyboardGenie.exe------

一个独立的、有图标的、装在系统托盘的Windows软件,出现在我的桌面上。

我,一个Web前端,做出了一个Windows桌面软件。

Web开发 vs Windows开发:AI到底帮我解决了什么?

作为一个有编程基础的人,我用AI做这个工具时,感受和纯小白完全不同。

我的优势在于:

  • 我知道什么是"程序结构"、"配置文件"、"异常处理"
  • 我能看懂AI生成的代码,知道它在干什么(虽然细节可能不懂)
  • 我知道怎么拆解需求,把大问题变成一个个小问题去问AI

我的劣势在于:

  • 我不知道Windows领域有什么"现成的轮子" ------Web里我要做某件事,脑子里马上能冒出三五个库。但Windows里,我连"用什么库"都不知道。
  • 我不知道"最佳实践" ------Web里我知道怎么组织代码、怎么写才优雅。但Windows里,我写的代码可能很"丑陋",但AI帮我避开了明显的坑。
  • 调试时,错误信息我看不懂------Web报错我一看就知道大概哪里出了问题。但Windows报错(比如"COMException"、"窗口句柄无效"),对我来说就是天书。这时候AI的价值就体现出来了:把错误信息扔给它,它告诉我原因和解决方案。

AI帮我填平的,不是"编程能力"的鸿沟,而是"领域知识"的鸿沟。

一些感触

1. 编程的门槛在降低,但"思维"依然是核心

有人说"AI让编程变得不值钱",我不这么认为。

AI降低了"写代码"的门槛,但"拆解需求"、"设计架构"、"判断什么方案更合适"这些能力,依然值钱。

在这个项目里,我虽然一行核心代码都没写,但以下工作是我做的:

  • 判断用Python而不是C#(因为我对Python更熟)
  • 设计配置文件结构(YAML,跟Web习惯一致)
  • 拆解20多个软件的登录流程,找出共性
  • 判断什么时候该用"控件识别",什么时候该降级到"图像识别"

AI负责"怎么写",我负责"写什么"和"为什么这么写"。

2. AI是"领域翻译器"

对我来说,AI最大的价值不是"帮我写代码",而是把Windows领域的概念翻译成我能听懂的语言

我问:"怎么找窗口?"AI不直接扔代码,而是解释:Windows里每个窗口都有标题和类名,可以用find_window根据这些信息去找。

这个"翻译"过程,帮我快速建立了心智模型。

3. 交叉领域是AI的"甜蜜点"

Web开发转Windows开发,以前是个很大的跨度。你要学的东西太多,以至于很多人直接放弃。

但AI把这个跨度缩小了。

你不需要成为Windows专家,你只需要知道"我要做什么",AI帮你填充中间的空白。

AI让我可以在"保持主业不变"的前提下,快速进入另一个领域,解决实际问题。

这个工具现在怎么样了?

说实话,它还不完美。

  • 有些软件的登录框控件识别不稳定
  • 处理异常情况(网络超时、软件崩溃)还不够智能
  • 配置界面还很粗糙

但它在持续改进。

每次遇到新问题,我就去问AI:"如果窗口没出现怎么办?""如果账号密码填错了怎么重试?"

AI给出方案,我集成进去。

这就像有了一个24小时在线的、耐心的、知识渊博的导师。 而且这个导师从不嫌弃你问的问题"太基础"。

相关推荐
其实是白羊1 天前
CoderTools 1.5.3:让 AI 帮你看懂代码调用链路
后端·ai编程·vibecoding
Hector_zh1 天前
实战·第八篇:当模型陷入死循环——FACA破解JSON生成的架构陷阱
人工智能·agent·vibecoding
柯倪2 天前
使用ai编程一年多,我遇到的问题以及解决思路
vibecoding
duanze3 天前
从零开始Android商业项目Vibe coding完全指南(七)
app·vibecoding
卡卡罗特AI6 天前
有了 DESIGN.md 后,大家也能写出高颜值的网站了!
ai编程·vibecoding
kunge20136 天前
1. OpenSpec 命令执行过程与 Claude Code 提示词详解
vibecoding
自传.7 天前
尚硅谷 Vibe Coding|第三章(1) Claude Code深度使用与进阶技巧 学习笔记
笔记·学习·尚硅谷·vibecoding
文艺倾年7 天前
【强化学习】数学推导专题,20W字总结(十五)
人工智能·分布式·大模型·强化学习·vibecoding
Captaincc8 天前
TRAE AI创造力大赛,正式启动!
trae·vibecoding
Hector_zh11 天前
逐浪 · 第十一篇: Vibe Coding 下的效率定义与规范建设
人工智能·vibecoding