winform窗体,当不想让它显示出来,但是还想用api控制鼠标来点击窗体上的控件

.Net技术 码拜 9年前 (2016-02-22) 1213次浏览
RT,有什么实现办法吗?欢迎大家讨论,尝试过把窗体放到屏幕外面这个方法
解决方案

10

开玩笑啊。不显示窗体,你怎么样让鼠标去点击窗体上的控件?你可以调用一个隐藏窗体的接口方法,这是可以的。但是要控制鼠标移动、点击动作,那么这就是在当前屏幕上操作。
例如说,有些窗口出现的位置是不定的,那么有可能有部分内容就在windows桌面区域之外,这时候其出了桌面的部分你就点不到。
再例如,假设运行时有其它窗口(例如你想同时“偷”人家50个窗口实例内容,而不是只有一个窗口)挡住了目标窗口,那么你所谓的“点击”点的就是最上面覆盖的窗口,而全部被挡住的窗口上的控件你都点不到。

20

引用 10 楼 she6600 的回复:
Quote: 引用 9 楼 mjp1234airen4385 的回复:

鼠标能点击的东西,都是在桌面上能看到的东西,假如你隐藏了窗口,发送点击消息,就没有效果了。
假如你仅仅是把窗口挪出当前屏幕,但是没有隐藏的话,是可以发送单击事件的。

你好,挪出当前屏幕,那怎么确定窗口和窗口控件的位置啊

不需要知道位置啊,只要知道按钮的名称,或按钮上的文本,直接发送单击消息,就好了。
在你的程序里,枚举那个窗口上的全部控件,找到你要的按钮,

10

什么叫可视化操作?首先是可视(即获得焦点),然后才有可能操作。
Windows决定了某一时刻只有一个窗体获得焦点:你如你把光标定在某个输入框,这时候光标会闪动,输入框获得焦点。然后移动鼠标,这时候焦点其实还是输入框,鼠标这时候是出于悬空状态的,还没有决定对谁“下手”。鼠标left-right点击,这输入框失去焦点(光标消失),而焦点落在鼠标点击的窗体。
假如你用过按键精灵,就会知道这个限制,想通过x-y坐标对隐藏的窗体触发点击事件,那是不可能的。还是通过api调用吧。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明winform窗体,当不想让它显示出来,但是还想用api控制鼠标来点击窗体上的控件
喜欢 (0)
[1034331897@qq.com]
分享 (0)