【问题标题】:How simulate CTRL+V keystrokes (paste) using C#如何使用 C# 模拟 CTRL+V 击键(粘贴)
【发布时间】:2013-03-15 07:24:18
【问题描述】:

我们如何使用 C# 模拟 CTRL+V 键(粘贴)?

我有一个没有用于访问的 ID 的文本框,例如 textbox1.Text = someValue 在这里不起作用。
我想通过单击来填充该文本框(从剪贴板)。由于某些原因,我们确实需要模拟 CTRL+V,这意味着我们不能使用像 inputsimulator 这样的外部库。

【问题讨论】:

  • 需要更多信息 - 你能对文本框进行子类化吗?您使用的是 Silverlight、WinForms 还是 WPF?为什么您无法获得对文本框的引用?
  • @Alex G 我正在使用 winform 中的 webbrowser 控件,导航到特定页面后,我无法通过它的 id 访问 webbrowser 中的目标文本框。
  • 如果你的文本框在浏览器中,这根本不是 winforms 的问题,而是 HTML 脚本
  • 如何找到文本框?你能得到文本框窗口的句柄吗?这将是一种比模拟击键更好的插入文本的方法。
  • 我通过模拟鼠标位置单击该文本框,然后单击。我真的很想学习如何用 c# 语言模拟 ctrl+v 亲爱的 Jonathan Wood

标签: c# html winforms paste


【解决方案1】:

字符与键

% => alt , + => shift^ 用于发送 ctrl 密钥

原答案:

下面解释了单个修饰键与另一个键的模拟 Step1: 聚焦文本框,您要在其上执行两个键,然后 Step2: 发送键,例如 control-v 将像"^{v}" 一样发送。这是代码

target_textBox.Focus();
SendKeys.Send("^{v}");

target_textBox.Focus(); 仅在发送密钥时目标文本框未聚焦时才需要

更新:对于发送三个键(两个修改键加上其他键)喜欢实现ctrl shift F1你将发送以下

^+{F1}

Microsoft Docs Ref

【讨论】:

  • 感谢您的回答,亲爱的 Sami,shift+home 和 shift+end 呢?
  • @MoonLight - 这是一个链接,其中包含有关所有不同组合的大量有用信息。 msdn.microsoft.com/en-us/library/…
  • 如果您正在谈论发送这些密钥,那么我认为 "+{home}" "+{end}" 会起作用
【解决方案2】:

为什么不覆盖 TextBox OnClick 事件,而不是在调用事件时,将 Text 属性设置为 Clipboard.GetText()

喜欢:

private void textBox1_Click ( object sender, EventArgs e )
{
        textBox1.Text = Clipboard.GetText ();
}

【讨论】:

  • 我想投票给你,因为我知道了一件我不知道的事情,但很抱歉它对我不起作用,你试过了吗?
  • 你有没有把它添加到 TextBox 的 Click 事件中?
  • 对不起,我错过了分配,只是使用了Clipboard.GetText ();,但现在它可以处理任何事件(不仅是点击),因为它应该......
【解决方案3】:

这个函数已经内置:TextBoxBase.Paste()

textbox1.Paste();

【讨论】:

    【解决方案4】:

    一些 JS 不允许以通常的方式改变值

    inputList[21].SetAttribute("value", txtEMail.Text);
    

    你应该试试这样的:

    inputElement.InvokeMember("focus");
    inputElement.InvokeMember("click"); //sometimes helpfull
    Clipboard.SetDataObject(txtEMail.Text);
    SendKeys.Send("^(v)");
    

    //但不是“^{v}”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-27
      • 2021-12-10
      • 2020-09-08
      • 2022-12-22
      • 2011-06-28
      • 2020-11-11
      • 2022-06-17
      • 1970-01-01
      相关资源
      最近更新 更多