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

     2023-03-05     203

关键词:

【中文标题】如何使用 C# 模拟 CTRL+V 击键(粘贴)【英文标题】:How simulate CTRL+V keystrokes (paste) using C# 【发布时间】: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 【参考方案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”

【讨论】:

如何使用 JavaScript 检测 Ctrl+V、Ctrl+C?

】如何使用JavaScript检测Ctrl+V、Ctrl+C?【英文标题】:HowtodetectCtrl+V,Ctrl+CusingJavaScript?【发布时间】:2011-02-2315:26:02【问题描述】:如何使用Javascript检测ctrl+v、ctrl+c?我需要限制在我的textarea中粘贴,最终用户不应复制和粘贴内容... 查看详情

如何使用 JavaScript 检测 Ctrl+V、Ctrl+C?

】如何使用JavaScript检测Ctrl+V、Ctrl+C?【英文标题】:HowtodetectCtrl+V,Ctrl+CusingJavaScript?【发布时间】:2011-02-2315:26:02【问题描述】:如何使用Javascript检测ctrl+v、ctrl+c?我需要限制在我的textarea中粘贴,最终用户不应复制和粘贴内容... 查看详情

如何修复“忽略的击键”

】如何修复“忽略的击键”【英文标题】:Howtofix"Ignoredkeystrokes"【发布时间】:2019-08-2104:28:53【问题描述】:我的问题是,在添加了捕获键之后,我的代码开始不能正常工作。更详细地说:按下组合键(在我的情况下是CT... 查看详情

如何在c#中,文本框不能粘贴功能

文本框要求不能用快捷键Ctrl+V以及右键粘贴的方式进行操作如果可以的话文本框只能实现用刷卡方式输入数据,不能以键盘输入方式输入禁止粘贴只要把textBox1的ShortcutsEnabled属性设为false就可以了。鼠标右键包括快捷键Ctrl+V都不... 查看详情

使用 C# 模拟键盘

】使用C#模拟键盘【英文标题】:KeyboardemulationwithC#【发布时间】:2015-10-2520:38:44【问题描述】:我正在开发一个C#应用程序,它使用户能够设置一些特定的击键,当应用程序在执行中启动时,这些击键将重现。就我在记事本或其... 查看详情

eclipse使用ctrl+c和ctrl+v复制粘贴时总是卡顿

Eclipse使用Ctrl+C和Ctrl+V复制粘贴时总是卡顿,解决办法:更改打开代码超链接按键Ctrl为Alt: Window -> Preferences -> General -> Editors -> Text Editors -> Hype 查看详情

pycharm无法使用ctrl+c/v复制粘贴的问题

最近在使用pycharm的时候发现不能正常使用ctrl+c/v进行复制粘贴,也无法使用tab键对大段代码进行整体缩进。后来发现是因为安装了vim插件的问题,在setting里找到vim插件,取消勾选即可解决问题。 查看详情

退出python命令行,pycharm不能使用ctrl+c和ctrl+v复制粘贴的问题

目录Python -c使用Pycharm一直卡在connectingtoconsole的解决办法​​​退出python命令行Pycharm不能使用Ctrl+C和Ctrl+V复制粘贴的问题Python -c使用其中的c就是执行commend命令python-c"print('TTXT')"Pycharm一直卡在connectingtoconsole的... 查看详情

xshell复制粘贴(ctrl+c,ctrl+v)配置

在使用Windows一般使用ctrl+c,ctr+v实现粘贴复制,通过Xshell连接Linux时,可以通过设置实现两种环境的复制粘贴,从而提高工作效率(比如按照文档操作,直接复制代码到Linux,比手敲快很多)... 查看详情

在windows中粘贴命令的快捷键是ctrl+v

...trl+Z(该快捷键很实用,当你错误的剪切了文件或者文字,使用Ctrl+Z即可取消前面的操作)。参考技术A快捷键是ctrl+v 查看详情

请教,使用vba如何控制不能在窗体的文本控件中使用复制/粘贴功能?也就是ctrl+c、+v不起作用。谢谢。

这些键是WINDOWS内核支持的,VBA工作在EXCEL里面,优先级低,无法接管的。可以搞破坏,写个定时代码,例如1秒执行一次(或者更频繁),使用Application.OnTime加载,定时取消复制(Application.CutCopyMode=False)追问这个定时代码咋写呢... 查看详情

电脑突然使用不了复制粘贴快捷键,ctrl+c和ctrl+v没用

...运行窗口:输入  CHKDSKD:f   2、确定之后,使用重启大法 就是这么简单,上图:  查看详情

vim全选复制粘贴

...按esc后,然后ggvG(这个好像有点问题)或者ggVG正确 vim如何与剪贴板交互(将vim的内容复制出来)习惯了在windows环境各个应用程序之间如UltraEdit,记事本,eclipse之间ctrl+c,ctrl+v进行复制粘贴的你,如何在vim与别的windows应用程... 查看详情

如何使用 Ctrl-D 终止程序?

】如何使用Ctrl-D终止程序?【英文标题】:HowtoterminateaprogramwithCtrl-D?【发布时间】:2010-12-3014:58:52【问题描述】:我正在尝试编写一个模拟计算器的简单程序。我希望程序在Ctrl+D击键时退出或关闭。我通过***搜索并看到了Ctrl+C或... 查看详情

c/c++如何向指定窗口发送ctrl+v然后回车

有一个程序窗口标题为“获取真实ip:”里面有一个文本框和确定,假设剪贴板里已经保存了ip地址想做一个程序,一旦检测到这个窗口的存在就向这个文本框发送ctrl+v然后回车做得到吗?求助别的语言也可以如果是vbsjs那最好了... 查看详情

我如何在一些全局击键上使用 Python 或 C++ 将一些文本粘贴到 linux 中的当前活动应用程序

】我如何在一些全局击键上使用Python或C++将一些文本粘贴到linux中的当前活动应用程序【英文标题】:HowcanI,onsomeglobalkeystroke,pastesometexttocurrentactiveapplicationinlinuxwithPythonorC++【发布时间】:2009-09-2607:18:01【问题描述】:我想编写一... 查看详情

gvim在编辑(插入)模式下怎么样才能使用ctrl+v和ctrl+c和ctrl+x,来实现剪切复制粘贴。

...下一按ctrl+v,就会自动插入“^”这个符号,如果粘贴。如何修改它的配置文件呢。不会意思,打错字了,上文应该是“就会自动插入“^”这个符号,无法粘贴”。参考技术Avim可视模式下可以快捷键,但是命令行模式不能ctrl+v的... 查看详情

在 C# 中模拟键盘输入

...【发布时间】:2013-12-2706:05:32【问题描述】:我需要知道如何模拟键W、S、A、D的键盘输入。我使用了SendKeys无济于事,也使用了InputSimulator库但没有修复。我想要做的是让游戏(战地、自然选择等较新的FPS游戏)等应用程序将这... 查看详情