我想用热键实现Ctrl+V的粘贴功能。不要用模拟按键的方法,因为如果定义的热键有Ctrl的话则不行。
获取句柄的方法好像也不好,因为象网页表格只类的东西好像无法获取。大家有没有什么好方法?
如果分不够的话,我可以加。

解决方案 »

  1.   

    当然是要通过剪贴板(clipboard)了。
    但关键是要怎么 paste上啊?
      

  2.   

    SendMessage发送WM_Paste消息就Ok了
      

  3.   

    不明白模拟Ctrl+V的粘贴(网页里)和直接输出内容到网页中的文本框有何区别?另外网页里的文本框是没有句柄的,它不是WinControl
      

  4.   

    我关键是想用其他热键代替Ctrl+V的功能。
      

  5.   

    你拦载其它进程的消息,再在其它进程中注册热键,再在按下你定义的热键时拦载到WM_HOTKEY消息.然后直接把剪贴板的内容输出到文本框或网页中的文本框中就可以了.
    不过还是想不通这样做有什么意义 :-)
      

  6.   

    我可以定义全局热键啊,
    但关键是我要怎么才能 输出到文本框或网页中的文本框。
    如果用模拟按键的方法会因为按键冲突而导致模拟的 Ctrl+V 失效。
    就是要sendmessage也要知道向谁send啊。
    如果目标文本框根本就没有句柄那就更是麻烦了。我我想我这回应当是把问题说清楚了吧。
    恳请赐教。
      

  7.   

    控制IE一般就是两种方法,一种是DDE,一种就是ActiveX安装一个ActiveX组件-Microsoft Shell Controls and Automation(IE4以后,系统都自带了)!安装完后,可看到TShell组件!窗体放置一个Shell组件uses ActiveX,MSHTML,OleCtrls,SHDocVwvar
      ShWin:IShellWindows;
      Wb:IWebBrowser2;
      ShWin := Shell.windows as IShellWindows;
      //用for i := 0 to ShWin.Count - 1 do遍历  Wb := ShWin.Item(i) as IWebBrowser2;var
      Doc:IHTMLDocument2;  Doc:=Wb.document as IHTMLDocument2;
      

  8.   

    模拟按键用postmessage就可以,至于控制web要用到internet下的webbrowser组建的document
      

  9.   

    呵呵,
    谢大家了。
    虽然还没有什么满意的答案。其实我要实现的功能很简单。
    就是用自定义的热键粘贴。
    也就是要用自己的热键实现和Ctrl+V一模一样的效果。
    大家的方法都有点通用太差了。节贴先。
    如果大家想到什么好方法要记得通知我哦:-)。