Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.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 ссылается на окно ввода |