procedure THIMouseEvent._work_doClick;
var b:byte;
pos:TPoint;
begin
b := ReadInteger(_Data,_data_Button,_prop_Button);
GetCursorPos(pos);
mouse_event(_mdown[b],pos.x,pos.y,0,0);
mouse_event(_mup[b],pos.x,pos.y,0,0);
end;
и вот такой вопрос по компоненту MouseEvent:
зачем в выше приведённом коде используются координаты, когда нужно только НАЖАТЬ клавишу???
полагаю и в игре при такой раскладке на Windows XP, из за этого происходит эмуляция со мещением курсора вниз, тем самым уводя камеру вниз, или каким образом разгадать такую загадку, из за чего на Windows XP в игрушке при эмуляции, камеру бросает вниз?
ну и ещё в 1 источнике с мануалом по функции mouse_event говорится, что в Windows XP эту функцию заменяют на SendInput
Этот топик читают: Гость
Ответов: 1343
Рейтинг: 31
|
|||
карма: 2 |
|
Ответов: 8926
Рейтинг: 823
|
|||
Rysik, вот, вот!
Сам я в игрушки не играю и игроботов не строю, мне действие procedure THIMouseEvent._work_doClick; не сдалось, требую убрать на фиг для экономии кода и времени! |
|||
карма: 19 |
|
Ответов: 1343
Рейтинг: 31
|
|||
Леонид писал(а): действие procedure THIMouseEvent._work_doClick;так оно в играх и не работает кстати нужным образом , надо юзать нажатие и отпускание через определённый интервал и всё же интересно как реализовать функцию SendInput ? |
|||
карма: 2 |
|
Разработчик
Ответов: 26151
Рейтинг: 2127
|
|||
Rysik писал(а): и всё же интересно как реализовать функцию SendInput ?Ищешь мануал на эту функцию, читаешь (можно найти уже готовый пример на каком-либо ЯВУ), берешь IC и пробуешь реализовать. У меня с первого раза не получилось, на дальнейшее исследование я плюнул, стало не интересно |
|||
карма: 22 |
|
Ответов: 1343
Рейтинг: 31
|
|||
nesco писал(а): Ищешь мануал на эту функцию, читаешьбыло бы так просто, но я там не понимаю, что за типы данных в функции надо указывать code_34667.txt |
|||
карма: 2 |
| ||
файлы: 1 | code_34667.txt [520B] [255] |
Разработчик
Ответов: 26151
Рейтинг: 2127
|
|||
Rysik писал(а): было бы так просто, но я там не понимаю, что за типы данных в функции надо указыватьnesco писал(а): можно найти уже готовый пример на каком-либо ЯВУНа том же Delphi, к примеру. У меня не получилось, повесило всю систему, поэтому даже браться не буду |
|||
карма: 22 |
|
Ответов: 2265
Рейтинг: 676
|
|||
Rysik писал(а): что за типы данных в функции надо указывать
nesco писал(а): повесило всю систему, поэтому даже браться не будуXP SP3 |
|||
карма: 11 |
|
Ответов: 4630
Рейтинг: 749
|
|||
nesco писал(а): У меня не получилось[offtop] nesco писал(а): повесило всю системуА также TKeybdInput.dwExtractInfo[/offtop] |
|||
карма: 26 |
| ||
Голосовали: | Rysik |
Ответов: 1841
Рейтинг: 369
|
|||
nesco писал(а): можно найти уже готовый пример на каком-либо ЯВУНу, вот только что проверил, вроде работает
|
|||
карма: 1 |
|
Ответов: 1343
Рейтинг: 31
|
|||
Netspirit писал(а): Здесь рабочий пример: forum.html?q=3&p=272351#p272351от души, СПАСИБО sla8a, тоже спасибо ------------ Дoбавленo в 19.32: sla8a писал(а): Поменяйте процедуру _work_doClick у MouseEvent на вот этот код и протестируйтепроблема по поводу сдвига курсора во время эмуляции решена! ну и наверно выкинуть можно mouse_event , и запитать туда полноценный SendInput, так как всё же не правильно получается, что при КЛИКЕ устанавливаются ещё и координаты курсора |
|||
карма: 2 |
|
Ответов: 4630
Рейтинг: 749
|
|||
Rysik писал(а): при КЛИКЕ устанавливаются ещё и координаты курсораА конкретно: GetCursorPos и подстановка полученных значений в mouse_event используются для того, чтобы произвести клик в том положении, где в данный момент находится курсор. Но: 1) в таком случае в первом параметре mouse_event также должен быть указан флаг MOUSEEVENTF_ABSOLUTE. Без него указанные координаты трактуются как смещение относительно предыдущего нажатия, из-за чего, вероятно, и происходит скачок курсора при эмуляции. 2) А раз так, то отсутствие флага MOUSEEVENTF_ABSOLUTE и 0-вые значения dx, dy избавляют от необходимости использовать GetCursorPos и отлично упрощают код. |
|||
карма: 26 |
|
Разработчик
Ответов: 26151
Рейтинг: 2127
|
|||
Netspirit, а где окончательный протестированный код
|
|||
карма: 22 |
|
Ответов: 4630
Рейтинг: 749
|
|||
У меня - в уме. А что?
|
|||
карма: 26 |
|
Разработчик
Ответов: 26151
Рейтинг: 2127
|
|||
Netspirit писал(а): У меня - в уме. А что?Не, это я что ли прокукарекал Netspirit писал(а): Прошу обратить внимание: в этом компоненте есть ошибка в использовании функции mouse_eventОбратили, а где решение вопроса |
|||
карма: 22 |
|
Ответов: 4630
Рейтинг: 749
|
|||
Обратили - хорошо. С моими выводами согласны? Если да - будет решение.
|
|||
карма: 26 |
|