Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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#应用程序触发Windows热键_C#_.net - Fatal编程技术网

如何使用我的C#应用程序触发Windows热键

如何使用我的C#应用程序触发Windows热键,c#,.net,C#,.net,我想使用我的c#应用程序触发Windows热键。例如,如果我在应用程序中选择了复制按钮,我想触发Ctrl-C热键。如果我在应用程序中选择了run按钮,我想触发Win-R热键 我该怎么做 谢谢。您可以使用这个方法 例如,在按钮单击事件中,要触发CTRL+C组合,您可以使用 SendKeys.Send("^c") // CTRL + C 注意:顺便说一下,我不建议您在“按钮单击事件”中执行此操作。可能您正试图从文本框中复制一些文本。但是,当您单击按钮时,文本框将失去焦点,选定的文本将消失。因此,键

我想使用我的c#应用程序触发Windows热键。例如,如果我在应用程序中选择了复制按钮,我想触发Ctrl-C热键。如果我在应用程序中选择了run按钮,我想触发Win-R热键

我该怎么做

谢谢。

您可以使用这个方法

例如,在按钮单击事件中,要触发
CTRL+C
组合,您可以使用

SendKeys.Send("^c") // CTRL + C
注意:顺便说一下,我不建议您在“按钮单击事件”中执行此操作。可能您正试图从文本框中复制一些文本。但是,当您单击按钮时,文本框将失去焦点,选定的文本将消失。因此,键正在正确发送,但您无法复制任何内容。

“如果我在应用程序中选择了run按钮,我想触发Win-R热键。”

运行对话框 但是,在JScript中,。在C#中仍然可以。您需要对Shell32的引用:

然后在代码隐藏中使用Shell32;添加

在按钮的单击事件中,可以执行以下操作:

private void runBtn_Click(object sender, EventArgs e)
{
    Shell shell = new Shell();
    IShellDispatch sd = (IShellDispatch)shell;
    sd.FileRun();
 }
你应该看到这样的东西:

模拟Ctrl-C “…如果我在应用程序中选择了复制按钮,我想触发Ctrl-C热键。”

Selman22提到,如果单击其他按钮,文本框将失去焦点。下面是解决方法:

private void copyBtn_Click(object sender, EventArgs e)
{
    textBox1.Focus(); // <---- here
    SendKeys.Send("^c");
}
private void copyBtn\u单击(对象发送者,事件参数e)
{
textBox1.Focus()//