VC向浏览器(IE,Firefox)发送鼠标单击消息

来源:百度知道 编辑:UC知道 时间:2024/06/03 14:13:34
试图使用SendMessage函数向火狐发送一个鼠标单击消息,现在能得到火狐的Handle,发送WM_CLOSE可以关闭火狐,但是火狐不响应WM_LBUTTONDOW消息。求助~

还有实验的时候向一个画图程序去发送消息,同样得到handle,在SendMessage的时候发现,WM_LBUTTONDOWN没有效果,但是WM_CLOSE却可以将画图关闭(和火狐的是一样的)

代码如下:
#include "windows.h"
#include "stdio.h"
void main()
{ HWND hWnd;
hWnd=::FindWindow(NULL,"Mozilla Firefox");
if(hWnd)
{
printf("Hello World!\n");
::SendMessage(hWnd,WM_LBUTTONDOWN,0,MAKELONG(200,200));
::SendMessage(hWnd,WM_LBUTTONUP,0,MAKELONG(200,200));
// ::SendMessage(hWnd,WM_CLOSE,0,0);
}
printf("End Hello World!\n");
}
1楼说的MK_LBUTTON也不行。
我的网页整个是一个图,点上就能跳转
运行结果是 Hello World能输出,也就是能找到,但是网页不跳转,也就是那个消息没有被处理

BM_CLICK消息试试,再一个,你要确认你找的hWnd对不对,画图程序里面可以画画的地方只是一个子窗口,它的hWnd和主窗体的hWnd是不一样的,WM_CLOSE肯定能响应,但是不代表其他消息就一定有效。

查找子窗体函数 ::FindWindowEx()

祝你好运!

微软从IE5.0开始便允许开发人员向其工具栏中添加按钮,其实现方法的本质就是修改注册表,添加创建此按钮所需的信息。首先要创建此按钮的GUID(globally unique identifier),这个GUID可以通过Visual Studio中的Guidgen.exe来产生。例如一个生成的GUID是{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}(本例在以下的叙述中都使用这个GUID来作说明)。有了GUID值后,要在Windows注册表中创建子键:

HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}

在此子键下创建如下字串值:

1)CLSID

这是IE的CLSID,其值必须为{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}

2)Default Visible

指明此按钮默认状态下是否可见,Yes表示可见,No为不可见

3)ButtonText

按钮文字

4)Icon

默认状态下的图标全路径,例如c:\vckbase.ico。也可以是EXE文件中包含的图标,例如:C:\PROGRA~1\NETANTS\NetAnts.exe,1000

5)HotIcon

鼠标移到按钮上时的图标全路径

如下子键为按下按钮后需要执行的相应动作