Приведение из списка объектов VirtualKey к RegisterHotKeyC#

Место общения программистов C#
Ответить
Anonymous
 Приведение из списка объектов 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 ... sterhotkey
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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