Csharp/C#教程:如何使用windows paste命令将文本粘贴到c#中的其他应用程序?分享


如何使用windows paste命令将文本粘贴到c#中的其他应用程序?

如何使用windows pastse命令将interop粘贴到c#中的其他应用程序?

呼叫互操作?

我的意思是如何编程c#相同的右键单击过去的文本

在某些情况下,这可能有点棘手,但实际上它非常简单易行。 下面是一个如何使用文本框(在本例中称为uxData),从代码打开记事本以及将剪贴板中的文本粘贴到记事本的示例。

public partial class Form1 : Form { public Form1() { InitializeComponent(); } [DllImport("user32.dll", SetLastError = true)] private static extern bool BringWindowToTop(IntPtr hWnd); private void OnClicked_PasteToNotepad(object sender, EventArgs e) { // Let's start Notepad Process process = new Process(); process.StartInfo.FileName = "C:\Windows\Notepad.exe"; process.Start(); // Give the process some time to startup Thread.Sleep(10000); // Copy the text in the datafield to Clipboard Clipboard.SetText(uxData.Text, TextDataFormat.Text); // Get the Notepad Handle IntPtr hWnd = process.Handle; // Activate the Notepad Window BringWindowToTop(hWnd); // Use SendKeys to Paste SendKeys.Send("^V"); } } 

现在,假设您要粘贴到特定字段中。 这是您需要使用FindWindow和FindWindowEx来获取要粘贴的字段的句柄的位置。 将数据复制到剪贴板后,执行以下步骤。

  1. 获取流程句柄
  2. 使过程成为焦点(激活它)
  3. 找到要粘贴到的字段的句柄
  4. 将焦点设置到该字段
  5. 使用SendKeys从剪贴板粘贴

您可以在System.Windows.Forms中使用Clipboard类来检查剪贴板包含的数据类型,并在需要时获取此数据。 Windows中的剪贴板保存“待粘贴”数据,可以是位图,文本,HTML,RTF等。

“粘贴”是什么意思并不十分清楚。 单击按钮,按下按键还是其他按钮时,是否应该“粘贴”? 文本框控件(richbox,combobox等)通常会响应Ctrl-V(标准粘贴击键),并会从剪贴板中以适当的格式(plain,RTF)自动插入文本,因此您无需执行任何操作手动。

在所有其他情况下,您需要确定您感兴趣的数据,并使用适当的方法从剪贴板中提取数据。

这是如何使用P / Invoke从Windows剪贴板获取数据。 这就是我可以给你的所有内容,而没有更多关于你想要粘贴它的信息。

  [DllImport("ole32.dll")] static extern int OleGetClipboard([MarshalAs(UnmanagedType.IUnknown)]out object ppDataObj); string text = ppDataObj as string; //paste it in your application somewhere 

从右键单击粘贴中获取文本

 using System.Windows.Forms; public static string GetControlV() { Textbox i = new Textbox(); i.Paste(); return i.Text; } 
  1. 声明一个新的Textbox对象
  2. 调用它的Paste()方法 – 在Windows窗体中将Paste()内置到Textbox组件中,并将从右键单击复制复制的文本放入文本框中。
  3. 返回Textbox的Text属性。

您需要添加对System.Windows.Forms.dll的引用。 以防万一…右键单击解决方案探索“参考”。 单击“添加引用”。 在“.NET”选项卡下,您应该能够找到该DLL。 那么使用法则应该有效。

上述就是C#学习教程:如何使用windows paste命令将文本粘贴到c#中的其他应用程序?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1024730.html

(0)
上一篇 2022年1月8日
下一篇 2022年1月8日

精彩推荐