请教关于 Windows 桌面开发有关 SendMessage/PostMessaage 的问题. - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qianqian888
V2EX    问与答

请教关于 Windows 桌面开发有关 SendMessage/PostMessaage 的问题.

  •  
  •   qianqian888 174 天前 1300 次点击
    这是一个创建于 174 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大佬们好,我是新手小白. 我的目标是给别的窗口发送后台鼠标点击事件. 我尝试了 SendMessage/PostMessaage,但发现了一系列的情况都被限制了:

    1. 窗口最小化不行;
    2. 窗口在后台但被其他全屏/最大化窗口遮挡也不行,比如浏览器;
    3. 系统级应用也不行(gpt 告诉我说如资源管理器/计算器等都不可以)

    感觉限制好多啊...有啥办法么? 我正在尝试写一个办公自动化脚本,就是指定不同窗口进行不同的后台自动化工作,而不影响用户在前台的窗口上工作.

    8 条回复    2025-04-26 14:41:39 +08:00
    qianqian888
        1
    qianqian888  
    OP
       174 天前
    如果是前台控制鼠标键盘的话,同时就只能干一件事...
    dandycheung
        2
    dandycheung  
       173 天前 via Android
    你用错 API 了,你去看看 SendInput 。
    qianqian888
        3
    qianqian888  
    OP
       173 天前
    @dandycheung SendInput 是前台控制,用户的鼠标和键盘直接被接管和控制. 这样就没办法多窗口同时操作了. 是我对 API 的理解有问题么?
    qianqian888
        4
    qianqian888  
    OP
       173 天前
    @dandycheung 我再去看了一下文档,确实 SendInput 是全局影响的.不是后台点击和输入...
    aqc113
        5
    aqc113  
       173 天前
    试下把目标窗口隐藏到托盘(SW_HIDE),就是像 qq 那样只剩下一个图标,然后再发送消息;或者
    如果只是要点击按钮,获得该按钮的句柄后,给按钮发送 BN_CLICKED 消息;或者
    如果目标窗口是浏览器,那么在你的程序里面嵌入个 cef 来打开网页,然后就可以用消息模拟鼠标点击了
    passive
        6
    passive  
       173 天前 via Android
    现在都是自画的控件,SendMessage/PostMessaage 发个 WM_COMMAND 给母窗口大概都没效果。WM_MOUSE 也不一定会被处理。那个年代过去了。
    SWALLOWW
        7
    SWALLOWW  
       173 天前
    看一下游戏脚本怎么写吧。
    涉及到几个问题:
    1 应该只有窗口最小化不行这个问题是成立的,之前的办法是只露出一下程序窗口,其他的部分移除屏幕外。
    2 关于消息响应方式,通过消息的方式你这种,额,有几率行,还有一种直接走驱动的,不会走消息,所以你发送消息是无用的。
    qianqian888
        8
    qianqian888  
    OP
       172 天前
    @SWALLOWW
    @passive
    @asde111 谢谢你们.
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2901 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 13:55 PVG 21:55 LAX 06:55 JFK 09:55
    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