HOOK是因为跨进程而不得不使用的方法,
TWEBBROWSER是在你自己的应用程序进程里啊!
TWERBROWSER所有响应MOUSE事件都是通过应用程序的消息传给它的,
哪用得着那些麻烦的方法,
你筛选一下应用程序的右键消息就行了.
是activeform
哦...你是ACTIVEFORM上面加FLASH??
csdn在凌晨的时候经常都不能发贴(超时) ,真奇怪.
http://community.csdn.net/Expert/topic/5212/5212367.xml?temp=.210232
对啊.
http://www.gzyd.net/lael/w.rar
// MSHTMLEvents { generated by EventSinkImp utility }
现在问题是如果用 onclick 事件,对 flash 无效,所以只好用 mousedown(发生在onclick事件前), 但它没有button参数,不知点左键还是右键, 所以左右键都会出现菜单(代码里先去掉注释).
mousedown 事件能在flash上面发生,这时显示一个菜单就可以屏掉flash的菜单了, 怎么区分左右键. TMouse区分不了吗?
mark
1,mousedown事件TMouseButton类型的参数,它是个枚举型,可以用来判断是左键还是右键按下.
TMouseButton = (mbLeft, mbRight, mbMiddle);
flash 控件可以简单地取消右键
MSHTMLEvents 的mousedown事件只有一个参数 sender:TObject , 大家可以先看看例子.
跟普通控件的事件是不同的
cangwu_lee(小橙子) : 我不是用控件, 我是在webbrowser里显示的flash. 右键菜单的关于是不能简单取消的
搞定了
终于看明白事件了
EventObj := (TMSHTMLHTMLDocumentEvents(Sender).Source as
IHTMLDocument2).parentWindow.event;
EventObj.button//这个是鼠标
mark