Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Delphi: Общие вопросы > Не работает Ctrl+A в окне UTorrent


Автор: areame 23.03.19, 12:54
Обнаружил странность, подскажите, в чём дело.
При нажатии на кнопку, нахожу окно uTorrent, активирую его, и эмулирую Ctrl+A - не работает почему то, при этом если с клавы нажать эту комбинацию - работает, торенты в списке все выделяются.
Попробовал с другими окнами - работает...
Версия uTorrent 1.8.2, на всякий случай..

Код эмуляции вроде стандартный и распространённый...
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
      keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), 0, 0);
      keybd_event(Ord('A'), MapVirtualKey(Ord('A'), 0), 0, 0);
      keybd_event(Ord('A')  , 0, KEYEVENTF_KEYUP, 0);
      keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL,0), KEYEVENTF_KEYUP, 0);

Автор: Jiro 24.03.19, 23:27
Мало активации одного лишь окна, ещё нужно сэмулировать клик в грид utorent-a, иначе ctrl+A не сработает даже с клавы.
Или найти окно этого грида и ему послать комбинацию клавишь.

Автор: areame 25.03.19, 06:33
Да грид(SysListView32) активен\зафокусен естесно, предварительно кликом зафокусен грид, и потом при активаци окна Торрента, этот грид так и остаётся быть зафокусеным, это видно по фокусной рамке на одной из строк внутри грида, перед тем как с клавы нажимать, или из моей проги эмулировать. С клавы работает, из моей проги не работает, в других окнах в других прогах из моей проги эмуляция работает.
Я даже в Window-Detective смотрел сообщения для грида - приходят идентичные пакеты сообщений, что от нажатия на клаве, что от моей эмуляции. Только после нажатия на клаве - список торрентов выделяется, после эмуляции из моей проги - ничего не выделяется. В других окнах после моей эмуляции всё выделяется нормально. Ничего не понимаю, что за.

Автор: areame 03.04.19, 10:31
Народ, есть решение\мысли, как такое может быть? Окно uTorrent - единственное в системе, которое игнорит эмуляцию Ctrl+A, и при этом на физическое нажатие на клаве Ctrl+A - реагирует

Автор: ^D^ima 03.04.19, 15:06
Я делал нажатие так(своих конопок):
Перед keybd_event
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    SendMessage(h, WM_SYSCOMMAND, SC_HOTKEY, h);


И стало быть h типа HWND ссылается на окно ввода

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)