gpt4 book ai didi

.net - SendKeys.Send 和 Windows 键

转载 作者:行者123 更新时间:2023-12-03 05:17:57 24 4
gpt4 key购买 nike

我正在尝试为我的 WinForm 应用程序创建一个键盘触发器,调用 Windows 键 + #(# = 数字键)快捷键,从而在任务栏上的第 n 个插槽中启动应用程序的新实例。

例如,我想运行 Photoshop,它位于任务栏的第一个位置。

WinKey+1

我听说过 CTRL+ESC 替代方案,但下面的代码不起作用。

SendKeys.Send("^{ESC}1")

还有其他选择吗?我需要为此运行批处理文件吗?

谢谢! :)

最佳答案

CTRL+ESC 并不模拟 WIN 键,它只是调用开始菜单。

一点 P/Invoke 总是能让每个人都高兴:

using System.Runtime.InteropServices;
using System.Windows.Forms;

static class KeyboardSend
{
[DllImport("user32.dll")]
private static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);

private const int KEYEVENTF_EXTENDEDKEY = 1;
private const int KEYEVENTF_KEYUP = 2;

public static void KeyDown(Keys vKey)
{
keybd_event((byte)vKey, 0, KEYEVENTF_EXTENDEDKEY, 0);
}

public static void KeyUp(Keys vKey)
{
keybd_event((byte)vKey, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
}
}

你这样调用它:

KeyboardSend.KeyDown(Keys.LWin);
KeyboardSend.KeyDown(Keys.D4);
KeyboardSend.KeyUp(Keys.LWin);
KeyboardSend.KeyUp(Keys.D4);

已测试,有效。玩得开心!

关于.net - SendKeys.Send 和 Windows 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6407584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com