11

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

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

4

4 回答 4

25

字符与键

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

原答案:

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

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

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

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

^+{F1}

微软文档参考

于 2013-03-25T17:50:13.563 回答
3

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

喜欢:

private void textBox1_Click ( object sender, EventArgs e )
{
        textBox1.Text = Clipboard.GetText ();
}
于 2013-03-25T17:56:59.110 回答
1

此函数已内置:TextBoxBase.Paste()

textbox1.Paste();
于 2016-04-14T13:13:11.603 回答
0

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

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

你应该尝试这样的事情:

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

//但不是“^{v}”

于 2019-01-24T05:29:34.547 回答