如何将剪贴板数据粘贴到C#Windows窗体中的另一个应用程序

时间:2019-06-02 13:52:26

标签: c# .net winforms

我有一个表格,已在剪贴板中复制了文本,现在我的要求是在设置剪贴板数据后,如果我在另一个应用程序(如记事本)中单击, 数据粘贴在那里。

 private void ListView1_EPC_Click(object sender, EventArgs e)
    {
        string str = ListView1_EPC.SelectedItems[0].SubItems[1].Text;            
        Clipboard.SetText(str);
    }

提前谢谢。

1 个答案:

答案 0 :(得分:0)

这是可能的:您可以将鼠标悬停在系统范围内。这已经在C#中实现,请看这里... https://www.codeproject.com/Articles/7294/Processing-Global-Mouse-and-Keyboard-Hooks-in-C 该项目为全局鼠标按下提供了一个简单事件(GlobalEventProvider组件)。然后,您需要做的就是在触发鼠标按下时使用SendKeys发送ctrl-v。

public class ForeignWindowPasteHelper
{

private readonly GlobalEventProvider eventProvider = new GlobalEventProvider();

  public ForeignWindowPasteHelper()
  {
    this.eventProvider.MouseClick += this.GlobalMouseDown;
  }

  private void GlobalMouseDown(object sender, MouseEventArgs e)
  {
    SendKeys.Send("^{v}");
  }
}

这将在每次按键时触发Cntrl + V(插入)。当需要触发时,您将需要实现一些逻辑。但这并不难。