Как отправить комбинацию клавиш / Windows Mobile 6.5

У меня есть устройство с операционной системой Windows Mobile 6.5 (Honeywell) в сочетании с SOTI. Что мне нужно реализовать, так это то, что, если устройство имеет статус akku ‹10 процентов, оно должно отключиться. Это то, что я могу сделать с SOTI.

Перед выключением мне нужно пять раз послать клавишу F12. Как я могу это понять? Я знаю, что есть виртуальные коды клавиш (https://msdn.microsoft.com/en-us/library/ms927178.aspx), но я не знаю, как их вызвать.


person user896692    schedule 25.07.2016    source источник


Ответы (1)


Вы можете использовать функцию keybd_event

    keybd_event( VK_F12, 0, 0, 0 );
    keybd_event( VK_F12, 0, KEYEVENTF_KEYUP, 0 );

Чтобы использовать это из .NET, см. pinvoke

    using System.Runtime.InteropServices;
    ...
    public const uint KEYEVENTF_KEYUP = 2;
    
    [DllImport("coredll.dll", EntryPoint = "keybd_event", SetLastError = true)]
    public static extern void keybd_event
    (
      byte bVk,
      byte bScan,
      int dwFlags,
      int dwExtraInfo
    );

Всегда используйте два вызова с одним и тем же значением ключа, один для ключа dwon и один с KEYEVENTF_KEYUP.

BScan для скан-кода обычно может быть 0, или вам нужно найти скан-коды клавиатуры PS / 2 для клавиши, которую вы отправляете.

person josef    schedule 26.07.2016
comment
Спасибо за ответ! Нужно ли мне для этого использовать фреймворки? Или можно просто скопировать и вставить в файл сценария? - person user896692; 26.07.2016
comment
Это зависит: если C / C ++ не требует дополнительной работы; если .NET вам нужно закрепить этот keybd_event - person josef; 27.07.2016