Как преобразовать DevWinUI.Shortcut.Keys в значения VirtualKey для использования с RegisterHotKey?C#

Место общения программистов C#
Anonymous
Как преобразовать DevWinUI.Shortcut.Keys в значения VirtualKey для использования с RegisterHotKey?

Сообщение Anonymous »

Я использую ярлык DevWinUI, но не понимаю, как получить из него ключ и модификаторы, а затем привести его к соответствующим типам для RegisterHotKey.
Горячий элемент управления возвращает общедоступные новые ключи List:

Код: Выделить всё

var keyInfo = MainShortcut.Keys.Cast().ToList();

foreach (var item in keyInfo)
{
var virtKey = item.Key;
var keyName = item.KeyName;
}
Я понимаю, как выполнить преобразование из VirtualKey и VirtualKeyModifiers в типы, требуемые RegisterHotKey, но я не уверен, как получить эти типы из элемента управления.

Код: Выделить всё

public static bool RegisterHotkey(int hotkeyId, VirtualKeyModifiers modifiers, VirtualKey virtualKey)
{
// Get window handle
MainWindow window = App.MainWindow;
HWND hWnd = new(WindowNative.GetWindowHandle(window));

// Register hotkey
BOOL success = PInvoke.RegisterHotKey(hWnd, hotkeyId, HOT_KEY_MODIFIERS.MOD_NOREPEAT | (HOT_KEY_MODIFIERS)modifiers, (uint)virtualKey);

return success;
}
Как получить два разных типа из списка объектов?
Минимальное воспроизведение: https://github.com/RyanLua/GlobalShortcut

Подробнее здесь: https://stackoverflow.com/questions/798 ... ith-regist

Вернуться в «C#»