【发布时间】:2011-11-08 10:57:36
【问题描述】:
有没有一种简单的方法来创建一个在后台工作并模拟 CTRL+V 键的工具?
例如:每当我按下 F1 按钮时,Windows 都会将复制的文本粘贴到活动文本框中。
PS: 对不起 STRG :( 它是德文版的 CTRL
好的第二部分:
这种方式适合我:
private void Form1_Load(object sender, EventArgs e)
{
this.KeyPreview = true;
this.KeyDown += new System.Windows.Forms.KeyEventHandler(KeyEvent);
}
private void KeyEvent(object sender, KeyEventArgs e) //Keyup Event
{
if (e.KeyCode == Keys.F4)
{
SendKeys.Send("^(V)");
}
}
但它只适用于我的应用程序。我也不希望我的程序在其他应用程序中执行此操作。 例如:当我按下 [WindowsKey] + [R] 时,“继续窗口”打开,如果我单击 f4,那么我的程序应该模拟 [CTRL] + [V] 并粘贴复制的文本。有什么帮助吗?
解决方案:
我终于明白了,它适合我的方式:
using Utilities;
namespace F4paste
{
public partial class Form1 : Form
{
globalKeyboardHook gkh = new globalKeyboardHook();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
gkh.HookedKeys.Add(Keys.F4);
gkh.KeyDown += new KeyEventHandler(gkh_KeyDown);
}
void gkh_KeyDown(object sender, KeyEventArgs e)
{
SendKeys.Send("^(V)");
e.Handled = true;
}
private void label1_Click(object sender, EventArgs e)
{
}
}
}
【问题讨论】:
-
您想在您的应用程序中还是在每个打开的应用程序中模拟 CTRL+V?
-
对于未来的读者:我在装有 Windows 7 的计算机上进行的 SendKeys 测试在没有任何提示或调试信息的情况下在 2/4 计算机上崩溃。使用 SendInput、SendMessage、PostMessage、InputSimulator 库,除了 SendKeys。
标签: c# windows background copy paste