我想获取旺旺聊天窗口的句柄,但尝试了几种方法都没找到。
试过的方法:
A.遍历旺旺聊天的所有子窗口,发现找不到“发送”按钮窗口。
B.用spy++查看,也没观察到“发送”按钮,不知为何。同时发现旺旺聊天主窗口是的类型是:StandardFrame,而不是一般的StandardWindow。希望:
1.找到发送按钮的Hwnd
2.向发送按钮发送WM_CLICK消息,可以让旺旺回复一条消息。
3.以上代码可通过C#的验证。能解决问题者,可以给更多的分,1000-2000都可以的。
谢谢大家的回复,再补充一下,
旺旺版本是6.30.17,早期的版本是可以的,但这个最新版的确找不到了。
Spy++Lite(2.4) 找不到的句柄的。EnumChildWindows,EnumWindows也试过,窗口中的文本输入框可以找到,就是找不到“发送”按钮。
试过的方法:
A.遍历旺旺聊天的所有子窗口,发现找不到“发送”按钮窗口。
B.用spy++查看,也没观察到“发送”按钮,不知为何。同时发现旺旺聊天主窗口是的类型是:StandardFrame,而不是一般的StandardWindow。希望:
1.找到发送按钮的Hwnd
2.向发送按钮发送WM_CLICK消息,可以让旺旺回复一条消息。
3.以上代码可通过C#的验证。能解决问题者,可以给更多的分,1000-2000都可以的。
谢谢大家的回复,再补充一下,
旺旺版本是6.30.17,早期的版本是可以的,但这个最新版的确找不到了。
Spy++Lite(2.4) 找不到的句柄的。EnumChildWindows,EnumWindows也试过,窗口中的文本输入框可以找到,就是找不到“发送”按钮。
不过你可以使用Spy++检测按钮点击时,消息发送到那个窗口了
keybd_event(VK_RETURN ,NULL,KEYEVENTF_KEYUP,NULL);模拟一下键盘就行啦,就发送啦,不用去找那按钮的句柄。
1、无法找到按钮窗口句柄,所以你也不要找了,因为他就是为了不让发才做的这个动作。
2、按钮的位置与聊天对话框的右边框距是不变的,你可以先用
CRect rect;
GetWindowRect(&rect);
int nright = rect.right;
取得右边的数置
用
int nbottom = rect.bottom;
取得下边框的位置
3、int xx=nright-x; int yy=nbottom-y;就是按钮的位置,x是指右边框到按钮位置的距离,y是指下边框到按钮的位置你用网页尺量一下就知道
4、提到位置后再取得整个对话框的窗口句柄ghwnd
5、
::PostMessage(b1hwnd, WM_LBUTTONDOWN,00000001,MAKELPARAM( xx, yy) );
::PostMessage(b1hwnd, WM_LBUTTONUP,00000000,MAKELPARAM( xx, yy) );
6、也可以用mouse_event
CPoint point;
GetCursorPos(&point);
SetCursorPos( xx,yy);
mouse_event( MOUSEEVENTF_LEFTDOWN, 0,0,0,NULL);
mouse_event( MOUSEEVENTF_LEFTUP, 0,0,0,NULL);
SetCursorPos(point.x,point.y);
但不明确你说的是什么方法.另外,sendkey{enter}这种方法,好象有时会丢消息.Re:vjeymyf 这的确是一个办法.
新款的旺旺 是用 directUI 技术做的 。。你找不到 句柄的
方法:向文本输入框中发送"enter"