Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 截取Ctrl+;然后传播_C#_Clipboard_Paste - Fatal编程技术网

C# 截取Ctrl+;然后传播

C# 截取Ctrl+;然后传播,c#,clipboard,paste,C#,Clipboard,Paste,我需要截取粘贴操作(Ctrl+V),修改剪贴板内容并传播该操作 我有一个简单的Winform应用程序。我可以注册一个全球钩子 RegisterHotKey(this.Handle, id, (int)KeyModifier.Control, Keys.V.GetHashCode()); 然后,我可以通过以下方式更改剪贴板内容: Clipboard.SetText("some text"); 我需要知道的是如何从这一点开始传播正常的粘贴操作 例如:如果我的应用程序最小化,而另一个应用程序(

我需要截取粘贴操作(Ctrl+V),修改剪贴板内容并传播该操作

我有一个简单的Winform应用程序。我可以注册一个全球钩子

RegisterHotKey(this.Handle, id, (int)KeyModifier.Control, Keys.V.GetHashCode());  
然后,我可以通过以下方式更改剪贴板内容:

Clipboard.SetText("some text");
我需要知道的是如何从这一点开始传播正常的粘贴操作


例如:如果我的应用程序最小化,而另一个应用程序(如记事本)打开并处于焦点位置。用户按下Ctrl+V,或使用“粘贴”菜单,则我的拦截器应更改剪贴板的内容,并将这些内容粘贴到记事本上。

在中检查接受的答案。希望这正是您所需要的。问题是,我正在处理由某个第三方应用程序生成的Ctrl+V,因此不会出现按键向下的情况。我想,我应该问另一个问题,但我需要一个用于粘贴操作的全局事件。就像剪贴板复制事件中可用的一样。我认为Ctrl+V是捕获此事件的起点。同样的粘贴操作也可以从编辑菜单中调用。如果您在之前,即当用户按下CTRL-C时更改剪贴板的内容,该怎么办?在这种情况下,您可以在WM_DRAWCLIPBOARD消息上设置一个钩子来更改剪贴板内容。@thepirat000我没有理解您的意思。目标是在任何第三方应用程序中执行粘贴操作时替换剪贴板的内容。因此,我们需要有一个事件通知我们有人将使用/粘贴剪贴板中的内容。我可以更改剪贴板,但我被困在传播部分。如何在我更改剪贴板后在第三方应用程序中继续粘贴操作。哦,我明白了。问题在于粘贴不是一个全局事件,仅拦截键盘快捷键CTRL-V是不够的。