想写一程序,当鼠标点击在某一比如网页之类的textbox中时,按下F9键,程序自动将剪贴板中的内容输入到textbox中(此法是否就是模拟键盘输入?)
最好能讲解得详细点,并且写下代码,谢谢!

解决方案 »

  1.   

    用javascript捕捉键值触发textbox事件
      

  2.   

    楼主你调试一下,呵呵:
    分别输出:keycode和realkey试试。
    function keyDown(){ 
     var keycode = event.keyCode; 
     //var realkey = String.fromCharCode(event.keyCode); 
     if(keycode == 120)
     {
        document.******* = ****************;
     }

      

  3.   

    这边有个输入"A"的时候就把剪贴板的数据复制的,你看看可不可以
     <script language="javascript">
        var str = "要复制的内容";
         clipboardData.setData("TEXT", str);
        function Copy(event)
        {      if(event.keyCode == 65)
          {
            var content = clipboardData.getData("TEXT");
            if(content !=null)
            {
             document.getElementById('<%= TextBox1.ClientID %>').innerText =content;
            }
          }
        }
        
        </script>
    <asp:TextBox ID="TextBox1" runat="server" onkeypress ="Copy(event)"></asp:TextBox>
      

  4.   

    貌似楼主说的WINFROM吧??
    如果是的话就有特定环境,分控件的键盘点击事件和窗体,所以完全办法是大家都引用同一个事件~~事件名:KeyPress
      

  5.   

    不是做一个网页,而是要做个小工具,无论是在填写网页中的textbox还是其他windows应用程序或是WINDOWS的窗口(就比如最简单的记事本啦)中达到如上要求
      

  6.   

    keyup事件if(keycode == 120)
    {
        textbox.text = "99";
      

  7.   

      private void textBox1_KeyUp(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.F9)
                {
                    this.textBox1.Text = "333";
                }
            }
      

  8.   

    to:wolf_life
    您的方法会不会有此问题:要使程序运行,那就要让程序获得焦点,而要能往网页或其他窗口中的TEXTBOX输入数据,那让它获得焦点,这样就导致冲突
      

  9.   

    function keyDown(){
    var keycode = event.keyCode;
    if(keycode == 120)
    {
        document.TextBox = 22;
    }
      

  10.   

    private void textBox1_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.F9)
                {
                    String pasteString = Clipboard.GetText();
                    this.textBox1.Text += pasteString;
                    this.textBox1.SelectionStart += pasteString.Length;
                }
            }这样不就满足需求了吗?
      

  11.   

    我要写的程序中没有textbox,就算有,也不是向本身程序窗口中的textbox写数据,而是通过该程序实现将系统剪贴板中的内容复制到另外的程序或窗口中的textbox(比如一网页中的textbox),不知我这样说,这里的牛人们懂我的意思了吗?
      

  12.   

    <script type="text/javascript"> 
    function KeyDownF9()
    {
    if(event.keyCode==120)
    {
      event.keyCode=0;
      event.returnValue=false;
      var obj=event.srcElement;
      obj.value+=window.clipboardData.getData("text");
    }
    }
    </script>
    <input onkeydown="KeyDownF9()" />
      

  13.   

    可以使用钩子实现
    private void Form1_Load(object sender, EventArgs e)
    {
        // 装上键盘钩子
        KeyboardHook keyboardHook = new KeyboardHook();
        keyboardHook.InstallHook();    keyboardHook.KeyDown += new KeyEventHandler(OnKeyDown);
    }
    public void OnKeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyValue == 120) // 按下F9
        {
            IDataObject iData = Clipboard.GetDataObject();
            if (iData.GetDataPresent(DataFormats.Text))
            {
                string text = (String)iData.GetData(DataFormats.Text); // 剪贴板中的字符串            SendKeys.SendWait(text); // 模拟键盘输入
            }
         }
    }
    关于钩子,给你一个参考
    http://www.huanghengxu.com/Upload/Hook.rar
    里面有三个文件:Hook.cs、KeyboardHook.cs、MouseHook.cs
    可以去网上搜索“全局钩子”、“键盘钩子”获取一些信息。
      

  14.   

    检查下Form1_Load事件是否触发了
    还不行就不知道了
      

  15.   

    空间using System.Runtime.InteropServices;[DllImport("user32")]
            public static extern bool RegisterHotKey(IntPtr hWnd, int id, uint control, Keys vk);//注册热键
            [DllImport("user32")]
            public static extern bool UnregisterHotKey(IntPtr hWnd, int id);//解除热键protected override void WndProc(ref Message m)
            {
                switch (m.Msg)
                {
                    case 0x0312:    //这个是window消息定义的   注册的热键消息
                        if (m.WParam.ToString().Equals("888"))  //如果是我们注册的那個热键
                        //MessageBox.Show("你按了ctrl+a");
                        {
                            SendKeys.Send(Clipboard.GetText());
                        }
                        break;
                }
                base.WndProc(ref m);
            }RegisterHotKey(this.Handle, 888, 0, Keys.F9);//这句写在窗体Load事件里面.注册F9键UnregisterHotKey(this.Handle, 888);//这句写在formclosing事件里面.解除热键
      

  16.   


    <script type="text/javascript"> function KeyDown_Name()
    {
    if(event.keyCode==120)
    {
      event.keyCode=0;
      event.returnValue=false;
      var obj=event.srcElement;
      obj.value+=window.clipboardData.getData("text");
    }
    }</script><input onkeydown="KeyDown_Name()" />
    <input type="txt_Name" value="java_and_Net" />