能力值:
( LV2,RANK:10 )
|
-
-
2 楼
这个还是等大神回答你吧。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
哪位高手在啊,指导一下
|
能力值:
( LV3,RANK:30 )
|
-
-
4 楼
FindWindowEx获取到按钮,然后SendMessage
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
我需要的思路是向主窗口发送消息,不知道是否可以实现。 难道.net程序不通过主窗口的消息处理来响应控件事件?
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
侯捷老师说过"勿在浮沙筑高台" 一步一步来! 加油!!
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
好像是4F说的一样,
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
来学习了 看看
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
4楼基本上正解了。主要是的困难是如何自动的获取这个按钮的句柄。
方法:
用FindWindow找到窗口的句柄 ,然后窗口再用FindWindowEx找到子窗口句柄,通过子窗口句柄再用FindWindowEx找到按钮的句柄。
找到按钮句柄后用PostMessage或SendMessage 这两个API,向按钮的句柄发送消息。即可。
我测试验证的时候是用Microsoft Spy++工具手动获取按钮句柄。
eg:
const int WM_CLICK = 0x00F5;
int id = 0x00110F58;//这个ID是要模拟点击按钮的句柄 ;我是通过Microsoft Spy++工具手动获取的。
Win32API.PostMessage(id, WM_CLICK, 0, 0);
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
亲,如果解决了,给分哈。
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
如果自己有.net程序的代码,可以在.net程序中重载WndProc,即可通过窗体处理消息,处理过程类似WinSDK
protected override void WndProc(ref Message m)
{
if (m.Msg == 0xxxx)
{
int num2 = m.WParam.ToInt32() & 0xxxx;
if (num2 == xxxx)
{
Button_Click(null,null);
}
}
base.WndProc(ref m);
}
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
我是用的mouse_event解决的
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
虽没找到理想的解决方法,仍谢谢大家的指导!WM_CLICK虽可实现,但不是太可靠。mouse_event则限制更多。
|
|
|