如何使用c#模拟CTRL+V键击(粘贴)
本文关键字:粘贴 键击 CTRL+V 何使用 模拟 | 更新日期: 2023-09-27 18:05:39
如何使用c#模拟CTRL+V键(粘贴)?
我有一个没有访问id的文本框,例如textbox1.Text = someValue
在这里不起作用。
我想填充文本框(从剪贴板)通过点击它。由于某些原因,我们确实需要simulate CTRL+V,这意味着我们不能使用像inputsimulator这样的外部库。
字符vs键
%
=>alt
, +
=>shift
和^
用于ctrl
键
原始答:
用另一个键模拟单个修饰符键的说明如下Step1:聚焦文本框,您想要执行两个键,然后Step2:发送键,例如control-v将像"^{v}"
一样发送。下面是代码
target_textBox.Focus();
SendKeys.Send("^{v}");
只有当目标文本框在发送密钥
时没有聚焦时,才需要 target_textBox.Focus();
更新:对于发送三个密钥(两个修改密钥加上其他密钥),如实现ctrl shift F1
,您将发送以下
^+{F1}
Microsoft Docs Ref
为什么不重写TextBox OnClick事件而不是在事件被调用时,将Text属性设置为Clipboard.GetText()
:
private void textBox1_Click ( object sender, EventArgs e )
{
textBox1.Text = Clipboard.GetText ();
}
这个函数已经内置在:
textbox1.Paste();
一些JS不允许以常规方式更改值
inputList[21].SetAttribute("value", txtEMail.Text);
你应该尝试这样做:
inputElement.InvokeMember("focus");
inputElement.InvokeMember("click"); //sometimes helpfull
Clipboard.SetDataObject(txtEMail.Text);
SendKeys.Send("^(v)");
//但不包括"^{v}"
如果操作系统中的语言不是英语,则此选项可能不起作用:
SendKeys.Send("^{v}");
那么试试这个选项:
SendKeys.Send("+{INSERT}");