PC 桌面软件需要实现的一个功能。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Zorro825
V2EX    程序员

PC 桌面软件需要实现的一个功能。

  •  
  •   Zorro825 2023-12-28 10:35:03 +08:00 3727 次点击
    这是一个创建于 722 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如我开发个 PC 软件,windows 端的。需要调用电脑里面已经安装的一个软件,打开软件,在软件登录框自动输入账号密码。

    实现是肯定可以实现的,因为我看到别人这样弄了, 请问用什么技术?

    我做 WEB 开发的,所以不太懂。

    21 条回复    2023-12-29 09:38:22 +08:00
    xtreme1
        1
    xtreme1  
       2023-12-28 10:37:27 +08:00
    pywinauto
    fdghjk
        2
    fdghjk  
       2023-12-28 10:40:24 +08:00
    上号器就是这个技术
    rming
        3
    rming  
       2023-12-28 10:40:29 +08:00
    模拟鼠标键盘输入
    SWALLOWW
        4
    SWALLOWW  
       2023-12-28 10:45:37 +08:00
    获取目标句柄发消息
    zhuzixian
        5
    zhuzixian  
       2023-12-28 10:49:27 +08:00
    nullp
        6
    nullp  
       2023-12-28 11:24:19 +08:00
    AU3
    Daniate
        7
    Daniate  
       2023-12-28 11:25:50 +08:00 via iPhone
    可以试试微软的 power automate
    opengps
        8
    opengps  
       2023-12-28 11:28:15 +08:00
    不用太多技术,先看下有没有快捷键能完成这一系列操作。剩下的就是模拟键盘
    StubbornHuang
        9
    StubbornHuang  
       2023-12-28 11:28:26 +08:00
    获取窗口句柄 获取控件句柄 模拟控件事件
    clorischan
        10
    clorischan  
       2023-12-28 12:14:49 +08:00
    那得看你打开登录的目标软件有没有做安全措施了.
    没有的话, 找到输入控件句柄发消息就行.
    有的话根据其强度, 可能需要写驱动+代码签名
    cuicuiv5
        11
    cuicuiv5  
       2023-12-28 12:29:55 +08:00
    按键精灵
    zcjwxf
        12
    zcjwxf  
       2023-12-28 12:48:31 +08:00
    技术实现就不说了,挺简单的,唯一注意的是你用了那些自动化方案后这台电脑不能玩网络游戏咯,会被封号的,
    morgan1freeman
        13
    morgan1freeman  
       2023-12-28 13:00:31 +08:00
    针对任意 exe 程序的话,驱动层面上 hook 对应的 win32 的 execute 函数,如果传入的 exe 文件的 md5 匹配上就直接 hook 住,不让启动,这个东西比较复杂,搞 win32 搞的多的话,github 上找一个 驱动 hook 的例子,应该就能实现
    morgan1freeman
        14
    morgan1freeman  
       2023-12-28 13:03:04 +08:00
    @clorischan 目标程序已经启动的话,针对目标程序句柄发消息,能干嘛,hide 窗口么,这种是不是 hook win32 的 execute 函数比较合适
    morgan1freeman
        15
    morgan1freeman  
       2023-12-28 14:09:13 +08:00
    用到的技术应该是 ssdt hook ,底层貌似是这两个函数 ,NtCreateProcess or ZwCreateProcess ,上内核驱动 patch 掉 这两个函数,应该就可以了
    liuhuihao
        16
    liuhuihao  
       2023-12-28 14:10:24 +08:00
    简单的来说 用按键精灵写个脚本就行了
    morgan1freeman
        17
    morgan1freeman  
       2023-12-28 14:13:50 +08:00
    https://github.com/angelkillah/zer0m0n/blob/02b81321108a8a8f245984b71dbdb37171ef5f82/src/driver/hooking.c#L23 这里有代码可以抄,它 hook 了 NtCreateProcess or ZwCreateProcess
    chutianyao
        18
    chutianyao  
       2023-12-28 16:15:39 +08:00
    autohotkey
    morgan1freeman
        19
    morgan1freeman  
       2023-12-28 17:28:35 +08:00
    @clorischan 不好意思 我看错题意了,它这个需求是打开一个 exe 然后填入密码账号,这个确实 sendMessage 就行了
    Zorro825
        20
    Zorro825  
    OP
       2023-12-28 19:15:00 +08:00
    @morgan1freeman 谢谢大佬
    layxy
        21
    layxy  
       2023-12-29 09:38:22 +08:00
    ahk
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2507 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 12:36 PVG 20:36 LAX 04:36 JFK 07:36
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86