Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
1-84099
Alibaba
2003-06-10 13:24
2003.06.26
TThread


7-84810
Гость
2003-04-16 15:32
2003.06.26
Программное нажатие Print Screen


6-84497
Мыш
2003-04-22 02:03
2003.06.26
вопрос по indy client-server


3-83904
Viktor
2003-06-03 12:16
2003.06.26
Создание базы данных MS Access программно


7-84775
alexander_ua
2003-04-17 13:55
2003.06.26
Определение подключения сетевого диска





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский