C# 如何模拟CTRL+;使用C进行V击键(粘贴)#
如何使用C#模拟CTRL+V键(粘贴) 我有一个没有访问id的文本框,例如C# 如何模拟CTRL+;使用C进行V击键(粘贴)#,c#,html,winforms,paste,C#,Html,Winforms,Paste,如何使用C#模拟CTRL+V键(粘贴) 我有一个没有访问id的文本框,例如textbox1.Text=someValue在这里不起作用。 我想通过点击这个文本框(从剪贴板)来填充它。由于某些原因,我们确实需要模拟CTRL+V,这意味着我们不能使用像这样的外部库 字符与键 %=>alt,+=>shift和^用于发送ctrl键 原始答案: 下面将解释使用另一个键模拟单个修改器键 第1步:聚焦文本框,您要在其上执行两个键,然后第2步:发送键,例如control-v将像“^{v}”一样发送。这是密码 t
textbox1.Text=someValue
在这里不起作用。我想通过点击这个文本框(从剪贴板)来填充它。由于某些原因,我们确实需要模拟CTRL+V,这意味着我们不能使用像这样的外部库 字符与键
%
=>alt
,+
=>shift
和^
用于发送ctrl
键
原始答案:
下面将解释使用另一个键模拟单个修改器键
第1步:聚焦文本框,您要在其上执行两个键,然后第2步:发送键,例如control-v将像“^{v}”
一样发送。这是密码
target_textBox.Focus();
SendKeys.Send("^{v}");
target_textBox.Focus()仅当发送密钥时目标文本框未聚焦时,才需要code>
更新:要发送三个键(两个修改键加上另一个键),要实现ctrl-shift F1
,您将发送以下内容
^+{F1}
为什么不在单击事件时重写TextBox,而在调用该事件时,将Text属性设置为Clipboard.GetText()
比如:
此功能已内置于:
有些JS不允许以常规方式更改值
inputList[21].SetAttribute("value", txtEMail.Text);
您应该尝试以下方法:
inputElement.InvokeMember("focus");
inputElement.InvokeMember("click"); //sometimes helpfull
Clipboard.SetDataObject(txtEMail.Text);
SendKeys.Send("^(v)");
//但不是“^{v}”需要更多信息-您能够对文本框进行子类化吗?您是在Silverlight、WinForms还是WPF?为什么您无法获取对文本框的引用?@Alex G我正在winform中使用webbrowser控件,在导航到特定页面后,我无法通过其id访问webbrowser中的目标文本框。如果您的文本框位于webbrowser中,这根本不是winforms问题,而是关于HTML脚本的问题。您如何找到文本框?你能找到文本框窗口的句柄吗?这将是一种比模拟击键更好的插入文本的方法。我通过模拟鼠标位置点击文本框,然后点击。我真的很想学习如何用c语言模拟ctrl+v亲爱的Jonathan Wood谢谢你的回答亲爱的Sami,关于shift+home和shift+end呢?@MoonLight-这里有一个链接,其中包含了关于所有不同组合的有用信息。如果你说的是发送那些钥匙,那么我想,“+{home}”
“+{end}”
会起作用的。我想投票支持你,因为我知道了一件我不知道的事情,但很抱歉这对我不起作用,你试过了吗?你把它添加到文本框的点击事件了吗?很抱歉,我错过了作业,只是使用了Clipboard.GetText()
但现在它可以处理任何事件(不仅仅是单击事件)。。
inputList[21].SetAttribute("value", txtEMail.Text);
inputElement.InvokeMember("focus");
inputElement.InvokeMember("click"); //sometimes helpfull
Clipboard.SetDataObject(txtEMail.Text);
SendKeys.Send("^(v)");