Форум: "WinAPI";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
Вниз---|Ветка была без названия|--- Найти похожие ветки
← →
Airdriver (2003-04-26 12:34) [0]Здаравствуйте мастера, подскажите пожалуйста как "нажать" , программно из Delphi, кнопку в какой-либо другой программе
← →
Snap (2003-04-26 12:49) [1]keybd_event
postmessage
← →
Vorobyev Sergey (2003-04-26 13:44) [2]Когда-то сам подобное делал, описываю как вспомнил..
Схема примерно такая:
1. Найти кнопку в другом приложении, т.е. Windows-окно
- используем функции FindWindow, FindChildWindow (?), EnumWindows, EnumChildWindos и другие, пригодные для поиска окна. Начинаем с "верхнего" (top) окна (формы) и так далее по дочерним..
- с помощью этих функций находим Хэндл (Handle)
2. "Нажать" кнопку
- SendMessage(Handle, WM_LBUTTONDOWN, 0, 0);
- или SendMessage(Handle, BM_CLICK, 0, 0);
← →
Xeon (2003-04-26 15:19) [3]А кто-нить может исходник кинуть? Который бы нажал (предположим) кнопку View в windows commander?? Если кто может - киньте суды: mailto:the-virus@yandex.ru
← →
DelBoy (2003-04-26 18:23) [4]Я пробую вот так:
PostMessage(FindWindow(Nil, "BSPlayer"), WM_keydown, VK_Space , 0);
Но в программе BSPlayer ничего не происходит :(((( Вот, прога просто не реагирует.
Можете по подробней объяснить
keybd_event
а точнее он имеет такую конструкцию:
VOID keybd_event(
BYTE bVk, // virtual-key code
BYTE bScan, // hardware scan code
DWORD dwFlags, // flags specifying various function options
DWORD dwExtraInfo // additional data associated with keystroke
);
Как полчить hardware код кнопки?
И когда я его посылаю как
PostMessage(FindWindow(Nil, "BSPlayer"), keybd_event(ord("s"), 0, 0, 0), 0 , 0);
Он мне посылает такое сообщение:
Incompatible types: "Cardinal" and "procedure, untyped pointer or untyped parameter"
Вот так вот.
А мне в частности надо передать окну BSPlayer"a кнопку "s" или "x" в общем любую из возможых, ну хоть Esc он все равно не хочет :((((( Подскажите пожалуйста, если можно то строкой примером, то есть полностью готовую процедуру PostMessage, пожалуйста... Буду очень признателен!
← →
Xeon (2003-04-26 18:26) [5]Я те могу подсказать код кнопки или как его узнать! Проги есть специальные! непомню ща как называются... Если заинтересовало - пиши на мыло я те их кину.
← →
LEON (2003-04-26 19:22) [6]вот так нажимается программно на кнопку Пуск, не используя keybd_event
postmessage(FindWindowEx(FindWindow("Shell_TrayWnd",nil),0,"Button",nil), WM_LBUTTONDOWN, 0, 0);
а свою кнопку ты ищешь типа так:
FindWindowEx(FindWindow("заголовок проги", nil), 0 ,заголовок кнопки, а далее как выше
← →
Snap (2003-04-26 19:38) [7]Для определения кодов кнопок не нужны никаке спецтальные проги, ведь все они (коды) описаны в MSDN, Virtual Key Codes
← →
DelBoy (2003-04-27 11:12) [8]Snap >> Virtual Key"s я знаю, они написаны в простом Хелпе по делфям, причем Виртуальный код простых клавишь, это его чаровое значение то есть ищеться ord"ом
LEON >> Спасибо сейчас попробую...
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.031 c