我试过很多方法, HOOK是可以的,但会出现其它问题,例如自定菜单无法响应点击.http://www.delphibbs.com/keylife/iblog_show.asp?xid=10961
可以监控到其它HTML-tag的消息,但对flash无效?? 我想获取flash的点击事件(无URL链接所以用不到其它方法) 

解决方案 »

  1.   

    HOOK是因为跨进程而不得不使用的方法,
    TWEBBROWSER是在你自己的应用程序进程里啊!
    TWERBROWSER所有响应MOUSE事件都是通过应用程序的消息传给它的,
    哪用得着那些麻烦的方法,
    你筛选一下应用程序的右键消息就行了.
      

  2.   

    哦...你是ACTIVEFORM上面加FLASH??
      

  3.   

    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区分不了吗?
      

  4.   

    1,mousedown事件TMouseButton类型的参数,它是个枚举型,可以用来判断是左键还是右键按下.
      TMouseButton = (mbLeft, mbRight, mbMiddle);
      

  5.   

    flash 控件可以简单地取消右键
      

  6.   

    MSHTMLEvents 的mousedown事件只有一个参数 sender:TObject , 大家可以先看看例子.
    跟普通控件的事件是不同的
      

  7.   

    cangwu_lee(小橙子) : 我不是用控件, 我是在webbrowser里显示的flash. 右键菜单的关于是不能简单取消的
      

  8.   

    搞定了
    终于看明白事件了  EventObj := (TMSHTMLHTMLDocumentEvents(Sender).Source as
                   IHTMLDocument2).parentWindow.event;
      EventObj.button//这个是鼠标