Re: w32 - Вызов WinAPI функций из Lua
не существует никакого "полного списка сообщений с кодами для функции SendMessage"
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
QUIK -> DDE → Lua: готовые внешние библиотеки → w32 - Вызов WinAPI функций из Lua
не существует никакого "полного списка сообщений с кодами для функции SendMessage"
Уважаемые, подскажите пжлст как правильно:
w32.PostMessage(hWnd, WM_SETTEXT, 0, str)
--неверный аргумент # 2 для PostMessage (ожидаемое число, ноль)
Вообще я правильно понимаю что жалуется на 0?
SendMessage
SendMessage
Но оно вроде будет держать квик?
зато не будет выводить мусор или валиться случайным образом.
SendMessage тоже не хочет - синтаксис похоже неправильный, в LUA не силен...
а константа WM_SETTEXT определена?
local WM_SYSCOMMAND = 0x0112
Это по типу этого? Блинн, нет конечно.
local WM_SYSCOMMAND = 0x0112
Это по типу этого? Блинн, нет конечно.
Да
--неверный аргумент # 2 для PostMessage (ожидаемое число, ноль) Вооот на кого квик ругался...
Усе понятно, Спасибо!
Бог мой, на [url]https://wiki.cheatengine.org/index.php?title=Lua:sendMessage[/url] есть пример по буквам:
for i=1,#text do
local c = string.sub(text, i, i)
local wParam = textToShortCut(c)
local lParam = textToShortCut(c)
sendMessage( hWnd, WM_IME_CHAR, wParam, lParam )
end
а всю строку сразу в LUA нельзя???
И еще: есть ли в w32 функция socket?
Может, посмотреть Copy/Paste?
Спасибо за ответ.
в win32 функции socket нет, но есть библиотека luasocket: [url]https://quik2dde.ru/viewtopic.php?id=343[/url]
sendMessage() в библиотеке w32 не поддерживает передачу указателей на строки, если таковые имеются в параметрах: [url]https://github.com/swerg/qlua-w32/blob/master/src/w32/luaw32.c#L272-L273[/url]
можно допилить, в теории.
Вот Спасибо за ссылку на w32, и как я мимо проскочил - половина вопросов сразу бы не было... Блинн, и за вторую тоже! Приятель попросил робота написать - играет руками, азартен, теряет. Какие проблемы! - счас, 5 минут! Ага, 5мн. Отсюда жестко именно Quik, да и биржа для меня темный лес, очень темный. Как говорится, добро пожаловать! Блн, с чем я связался??!!
Quik обновился до версии 8.13.1.16, перестал работать автологин!(( Это из-за w32, библиотеки или из-за того, что появилась кнопочка увидеть пароль?
из-за кнопочки
из-за кнопочки
Понял, исправил, работает.
Уважаемые, подскажите пжлст как правильно:
w32.PostMessage(hWnd, WM_SETTEXT, 0, str)
w32.SetWindowText(hWnd, str)
Подскажите пожалуйста, что не так?
function OnInit(path)
-- Ищем свое окно
hWnd = w32.FindWindow("TF1","Robo")
if hWnd == 0 then
message("Запустите Robo!")
stopped = true
return
end
message(string.format(hWnd).." = hWnd", 1)
hGlass = w32.FindWindowEx(hWnd, 0, "TButton", "btnStrt1")
if hGlass == 0 then
stopped = true
end
message(string.format(hGlass).." = hGlass", 1)
hTrade = w32.FindWindowEx(hWnd, 0, "TButton", "btnStrt2")
if hTrade == 0 then
stopped = true
end
message(string.format(hTrade).." = hTrade", 1)
hEdit = w32.FindWindowEx(hWnd, 0, "TEdit", "edt1")
if hEdit == 0 then
message("hEdit = 0!")
stopped = true
end
end
Главное окно находится, кнопки и едит = 0? Пытаюсь достучатся до своей программы... Spy++ проверял, русского текста нет.
Подскажите пожалуйста, что не так?
Главное окно находится, кнопки и едит = 0? Пытаюсь достучатся до своей программы... Spy++ проверял, русского текста нет.
Думаю для начала надо убедиться что в функции FindWindowEx 3 и 4 параметры верны
Обычно кнопки имеют имя класса не TButton, а просто Button и поля ввода не TEdit, а Edit
Да и имена элементов у вас какие-то странные
Не знаю как там в Spy++ смотреть, я пользуюсь Window Detective
В ней 3 параметр для FindWindowEx, смотрится в поле ClassName, а 4 в Window Text
Пытаюсь достучатся до своей программы... Spy++ проверял, русского текста нет.
Так а что Spy показывает? покажите
Телепаты в отпуске на этой неделе.
Я посадил кнопки и едит на красивую синенькую панель. Красотища же, е-мое. В результате и в тестовой программе, и в квике - 0!
Перетащил все прямо на форму - все нашлось! И квик достучался! Я то думал что FindWindowEx заглянет и на панельки...
Вам, уважаемый swerg, отдельное СПАСИБИЩЕ за то что Вы делаете!
Извините за отнятое время...
swerg, отдельное СПАСИБИЩЕ за то что Вы делаете!
Пожалуйста.
Я посадил кнопки и едит на красивую синенькую панель. Красотища же, е-мое. В результате и в тестовой программе, и в квике - 0!
Судя по названиям - на Delphi делаете.
Панель - отдельное окно. Видимо предварительно его хендл найти надо как дочернее окно формы, а уже потом - на нем кнопки. Spy все это показывает же.
Буилдер 6. Давно пора бы спрыгнуть с него, но несколько рабочих прог придется переделывать - что неохота. Из его минусов - 64б на нем не напишешь, все остальное устраивает. FindWindowEx ищет окна в Z последовательности, панель он увидел, а искать на ней - не стал. Что и подтвердилось дополнительно написанной тестовой прогой. Усложнять код не хочется, поэтому ну его, красоту эту.
Буилдер 6. Давно пора бы спрыгнуть с него, но несколько рабочих прог придется переделывать - что неохота. Из его минусов - 64б на нем не напишешь, все остальное устраивает.
При наличии C++Builder Community Edition это вроде не должно быть особой проблемой. Borland / Embarcadergo весьма хорошо поддерживают преемственность в новых версиях. Замены если и требуются - довольно формальные (если только есть исходники всех используемых доп. компонент, конечно).
FindWindowEx ищет окна в Z последовательности, панель он увидел, а искать на ней - не стал.
Я думаю вы просто не дожали тему Но не видя своими глазами уже что-то предметно подсказать не выйдет.
QUIK -> DDE → Lua: готовые внешние библиотеки → w32 - Вызов WinAPI функций из Lua
Форум работает на PunBB, при поддержке Informer Technologies, Inc