可以使用系统钩子,我试过,在资源管理器或ACDSee中按下Ctrl+C可以把文件名传送到我的程序中。不过,选中的文字我没有试过。我想可以。不过我要写出来看看。

解决方案 »

  1.   

    第二个问题和第一个问题是类似的,你既然能挂上钩子,那还有什么不能做的:)假设:使用CTRL+B获取光标选中文本。拦截键盘消息,得到CTRL+B消息后,向IE窗口发一个获取光标选中文字的消息(这个消息名称一时想不起来,可查MSDN),利用钩子拦截这个消息,获得文本。
      

  2.   

    EM_GETSEL 不过要在CEdit编辑控件中用
      

  3.   

    不好意思,我也没查到:)
    不知道适合于rich edit control的EM_GETSELTEXT消息能不能行,我没有试过,你可以试一下。
    如楼上几位所说,你为什么不使用剪贴板?
    如果说你不想破坏剪贴板当前的内容,这也完全可以做到。我再查一查,如果找到其它的办法下周一我在这里贴出来。
      

  4.   

    第一个问题:
    你可以发现在某些输入法中(比如紫光拼音),编辑控件的右键菜单(默认是六个),会多出几个菜单,或许你可以从这里找到线索,事实上普通编辑框的右键菜单是可以更改的,你可以从codeproject或者codeguru找到相关的文章,至于网页内的如何做就不清楚了第二个问题:
    如果你注意到新版的flashget的网页右键菜单响应的情况,你会发现他可以自动将网页里选择的文本传送到,它的下载注释栏,这通过IE本身的可扩展性,脚本语言和COM技术并不难实现,你找出flashget软件相关的脚本文件,一看便知.希望对你有所帮助,有什么问题可以写邮件给我讨论 [email protected]
      

  5.   

    这个我见过的实现方法,大概好像是先更改注册表,再ie右键菜单中注册这个菜单项,点中后执行一个javascript脚本程序,在脚本中建立自己程序的com对象,然后在此对象中接受相关信息。时间久远,自己又没动手做过,记不太清了。
      

  6.   

    第一个问题我不知道,关于第二个问题:
    2.这个是本贴的关键:在网页或者文本中,用鼠标选中了一段话,系统可以通过"ctrl+c"或者复制菜单获得这段话的内容然后送到剪贴板中,那么在我的程序中如何获得这段话的内容(不通过剪贴板)?如果真的如你所说,那我想其实不用想得很复杂,只要你用一个timer去查询剪贴板是否有新的内容即可。但如果你要在仅选中文字而不复制就获得,那就有点难度了,或许得靠API函数获得指定窗体指定控件.seltext