|
Библиотеки Сторонние библиотеки для Blitz |
16.09.2009, 04:46
|
#1
|
Разработчик
Регистрация: 19.05.2009
Адрес: Россия Иркутская область
Сообщений: 350
Написано 51 полезных сообщений (для 66 пользователей)
|
API Функции
Привет всем!!! У меня назрел такой вопрос, искал на него ответ на других сайтах, говорят не реально...Ну я все же пытаюсь найти ответ на этот вопрос, может его и не существует а вдруг
Значить так:
Есть decl файл user_32 для Blitz3D...Хочу написать на Blitz3D программу чтоб при запуске ее нажималась кнопка в другой программе. Вопрос как это сделать????
Пробовал вот так:
c= api_FindWindow("SciCalc","Калькулятор");
button=api_FindWindowEx(c,0,"Button","8");
If c <> 0 Then
Print "Окно найдено"
If button<>0 Then
Print "Кнопка найдена"
Else
Print "Кнопка не найдена"
EndIf
Else
Print "Окно не найдено"
EndIf
WaitKey
Вроде по проверкам все находит, но как мне ее нажать вопрос заключается в этом, хотя и может у меня чтото в коде не правельно...Моя просьба, помогите пожалуйсто, мне просто очень надо это сделать!!!
За ранее благодорю...
|
(Offline)
|
|
16.09.2009, 18:47
|
#2
|
злобный флудер
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений (для 1,476 пользователей)
|
Ответ: API Функции
совет, делай на пуребасике, если тебе важна только конечная цель. там это наверняка делается гораздо проще, хотя точно не уверен как
|
(Offline)
|
|
16.09.2009, 20:27
|
#3
|
[object Object]
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,361
Написано 2,473 полезных сообщений (для 6,856 пользователей)
|
Ответ: API Функции
кури SendMessage
btn=FindWindowEx(FindWindow(0, 'Заголовок окна'), 0, nil, "ИмяКнопки");
SendMessage(btn, WM_LBUTTONDOWN, 1, 1)
Sleep(100);
SendMessage(btn, WM_LBUTTONUP, 1, 1)
Для WM_LBUTTONDOWN, WM_LBUTTONUP
wParam определяет состояние кнопок мыши, lParam - упакованые оконные координаты события.
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 4090 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
Последний раз редактировалось Randomize, 16.09.2009 в 20:34.
|
(Offline)
|
|
17.09.2009, 01:51
|
#4
|
Разработчик
Регистрация: 19.05.2009
Адрес: Россия Иркутская область
Сообщений: 350
Написано 51 полезных сообщений (для 66 пользователей)
|
Ответ: API Функции
Не получается пробовал так
button=api_FindWindowEx(api_FindWindow("SciCalc","Калькулятор"),0,"Button","8");
If button <> 0
SendMessage(button, WM_LBUTTONDOWN, 1, 1)
api_sleep(100);
SendMessage(button, WM_LBUTTONUP, 1, 1)
Else
EndIf
WaitKey
и вот так:
c= api_FindWindow("SciCalc","Калькулятор");
button=api_FindWindowEx(c,0,"Button","8");
If c <> 0 Then
Print "Окно найдено"
If button<>0 Then
Print "Кнопка найдена"
SendMessage(button, WM_LBUTTONDOWN, 1, 1)
api_sleep(100);
SendMessage(button, WM_LBUTTONUP, 1, 1)
Else
Print "Кнопка не найдена"
EndIf
Else
Print "Окно не найдено"
EndIf
WaitKey
Всеравно не выходит Может ктото сталкивался с этим, дайте мне ответ пожалуйсто!!!
|
(Offline)
|
|
17.09.2009, 04:13
|
#5
|
[object Object]
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,361
Написано 2,473 полезных сообщений (для 6,856 пользователей)
|
Ответ: API Функции
XD
WM_LBUTTONDOWN и WM_LBUTTONUP у тебя гденибуть прописаны?
это же котируется как обычные переменные в б3д а следовательно ты передаёшь 0. А это ни к чему естественно не приведёт.
Вот декларируй на здоровье:
WM_MOUSEMOVE = $200
WM_LBUTTONDOWN = $201
WM_LBUTTONUP = $202
WM_LBUTTONDBLCLK = $203
WM_RBUTTONDOWN = $204
WM_RBUTTONUP = $205
WM_RBUTTONDBLCLK = $206
WM_MBUTTONDOWN = $207
WM_MBUTTONUP = $208
WM_MBUTTONDBLCLK = $209
WM_SETFOCUS = $7
WM_KEYDOWN = $100
WM_KEYFIRST = $100
WM_KEYLAST = $108
WM_KEYUP = $101
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 4090 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
|
(Offline)
|
|
17.09.2009, 04:34
|
#6
|
Разработчик
Регистрация: 19.05.2009
Адрес: Россия Иркутская область
Сообщений: 350
Написано 51 полезных сообщений (для 66 пользователей)
|
Ответ: API Функции
Большое спасибо, ты супер ))))
|
(Offline)
|
|
17.09.2009, 08:14
|
#7
|
Разработчик
Регистрация: 19.05.2009
Адрес: Россия Иркутская область
Сообщений: 350
Написано 51 полезных сообщений (для 66 пользователей)
|
Ответ: API Функции
Вот теперь еще такой вопрос, как мне сделать допустим запущен у меня блокнот и при запуске моей программы в нем написалось "Привет"
Пробовал так:
Const WM_SETTEXT= $C
s=api_FindWindow("Notepad","Безымянный - Блокнот")
t=api_FindWindowEx(s,0,"Edit","")
If t<>0
SendMessage(t, WM_SETTEXT, 0, "Привет");
EndIf
WaitKey
Но не выходит
|
(Offline)
|
|
17.09.2009, 10:38
|
#8
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: API Функции
Попробуй по отдельности посылать в окно нажатия кнопок клавиатуры, которые соответствуют вводимым в окно символам. Только возможно понадобится перевести фокус на текстовое поле, в которое хочешь ввести текст. Но это один из способов. Если ты нашел ссыку на текстовое окно, то проще установить его текст не с помошью сообщения, а непосредственно API функцией SetWindowCaption или SetWindowText.
Последний раз редактировалось pax, 17.09.2009 в 13:14.
|
(Offline)
|
|
18.09.2009, 02:38
|
#9
|
Разработчик
Регистрация: 19.05.2009
Адрес: Россия Иркутская область
Сообщений: 350
Написано 51 полезных сообщений (для 66 пользователей)
|
Ответ: API Функции
А можно по подробней?
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
функций |
NitE |
BlitzMax |
16 |
17.08.2009 00:39 |
Функции ( |
Crystal |
3D-программирование |
26 |
13.09.2007 17:16 |
Функции |
pipns |
Основной форум |
1 |
23.04.2007 11:54 |
Где функции? |
root |
3D-программирование |
12 |
02.01.2006 23:34 |
Часовой пояс GMT +4, время: 20:47.
|