Доброго времени суток. Пишу небольшого автокликера для мобильной игры. Игра запускается в эмуляторе Bluestacks. Мне требуется передать нажатие на клавиатуре Ctrl + - (VK_OEM_MINUS = 0xBD). Посмотрел что происходит в Spy++ когда нажимаю эти клавиши, вот результат.
Далее набросал кусок кода который повторяет эти же действия. Вот что происходит когда программно пытаюсь послать эти кнопки в окно эмулятора.
Сверял, все идентично. Но от куда-то берется WM_CHAR и так нечего не происходит. 1 кнопка работает, проверял на VK_DOWN = 0x28, а сочетание клавиш не как не получается запустить. Вот кусок колхозного кода.
public static void SendKey(VirtualKeys key, bool ctrl = false)
{
if (BlueStacksHelper.IsRunning)
{
int wKey = (((short)key) & 0xFF);
int lKey = 0x000000001 | ((int)Win32.MapVirtualKey((uint)wKey, 0) << 16);
int wCtrl = (((short)VirtualKeys.VK_CONTROL) & 0xFF);
int lCtrl = 0x000000001 | ((int)Win32.MapVirtualKey((uint)wCtrl, 0) << 16);
if (ctrl)
Win32.PostMessage(BlueStacksHelper._handleWindow, Win32.WM_KEYDOWN, ((IntPtr) VirtualKeys.VK_CONTROL), (IntPtr)lCtrl);
Thread.Sleep(65);
Win32.PostMessage(BlueStacksHelper._handleWindow, Win32.WM_KEYDOWN, ((IntPtr)wKey), (IntPtr) lKey);
lKey = (int)(0xC0000001 | (int)Win32.MapVirtualKey((uint)wKey, 0) << 16);
Win32.PostMessage(BlueStacksHelper._handleWindow, Win32.WM_KEYUP, ((IntPtr)wKey), (IntPtr) lKey);
lCtrl = (int)(0xC0000001 | (int)Win32.MapVirtualKey((uint)wCtrl, 0) << 16);
if (ctrl)
Win32.PostMessage(BlueStacksHelper._handleWindow, Win32.WM_KEYUP, ((IntPtr)VirtualKeys.VK_CONTROL), (IntPtr)lCtrl);
Thread.Sleep(65);
}
}
Что я делаю не так? Ведь вроде все идентично, только у меня WM_CHAR непонятно от куда передается.
UPD WM_CHAR это char символ - который я нажимаю на клавиатуре. Но почему и он передается?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Язык C# Как запустить exe инсталятор программы внутри формы своей программы? Это на тот случай если инсталятор не поддерживает тихий режим...
Добрый день, ищу помощи при создании службы которая работает с переодичностью (обновляет данные из интернета) в XamarinForms, служба не запускается...
Обязательно ли нужен SQL Data Tools, что бы была возможность создавать SQL CLR функции?