想实现一个功能,
通过外部程序A发送鼠标单击事件给另外一个程序B的托盘图标,通过此方法来代开B程序
有没有大神能给些提示
第一,托盘中的程序抓不到句柄,托盘是一个统一句柄(个人理解的)
第二,我用SendMessage在托盘中图标所在位置可以实现鼠标的单击,但是这个单击对图标不起作用
第三,B程序可以同时打开多个,如果通过Process枚举进程的方式去查找无法定位到每一个B的具体信息。但是在托盘里能读到B的具体信息。
你搜索一下“按键精灵”,打过网页游戏的应该知道这东西,可以编写脚本,全自动帮你打游戏。
1. 找坐标。
2. 找该程序的句柄
你直接找到B程序的句柄,然后打开就可以了,不用去托盘点击坐标这么麻烦,Process就能实现你的想要的功能了
Process可以查到B程序的打开路径,通过路径应该可以实现你想要的功能吧,我遇到过类似的问题,就是通过Process解决的
前提是多个B程序肯定不在一个目录下的
不明白,帮顶吧。
“通过外部程序A发送鼠标单击事件给另外一个程序B的托盘图标,通过此方法来代开B程序”,如果隐藏掉了没有显示在右下角的托盘上呢,还能用sendmessage方式实现吗。
看看Windows API,了解一下这个函数,应该可以解决你的问题:
[DllImport("user32.dll", EntryPoint = "mouse_event")] public static extern void mouse_event( int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo );