Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.10.16;
Скачать: [xml.tar.bz2];

Вниз

mouse_event - не понял.   Найти похожие ветки 

 
Dude   (2003-10-04 17:01) [0]

Hi all!
Я юзаю mouse_event. Следующий код, по идее, должен по нажатию одной кнопки, нажимать другую.

procedure TForm1.Button2Click(Sender: TObject);
var
P:TPoint;
begin
P:=Button1.ClientToScreen(Point(1,1));
mouse_event(MOUSEEVENTF_ABSOLUTE+MOUSEEVENTF_LEFTDOWN,P.X,P.Y,0,0);
mouse_event(MOUSEEVENTF_ABSOLUTE+MOUSEEVENTF_LEFTUP,P.X,P.Y,0,0);
end;

Но он нажимает вторую кнопку. Почему?


 
Дубинин Алексей   (2003-10-05 23:08) [1]

Не могу сказать точно, но помоему ты в обоих моментах задаешь вторым параметром координаты 0 0...и куда она жмыхается? А вот идею не совсем понял...


 
Almaz   (2003-10-06 04:14) [2]


> Но он нажимает вторую кнопку. Почему?

По двум причинам:
1. Параметры, определяющие DX и DY актуальны только при выполнении команды MOUSEEVENTF_MOVE. Для остальных команд они игнорируются.
2. Даже если бы они не игнорировались, ваш код бы не сработал, т.к. координаты задаются не в пикселах а в нормализованных координатах.
А решение будет следующее:
var
P: TPoint;
begin
P := Button1.ClientToScreen(Point(1,1));
mouse_event(MOUSEEVENTF_MOVE or MOUSEEVENTF_ABSOLUTE,
Round(65535 / Screen.Width * P.X),
Round(65535 / Screen.Height * P.Y), 0, 0);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
end;


Если хотите при этом еще и вернуть курсор обратно, то запомните сначала текущие координаты курсора, получив их с помощью GetCursorPos а затем выполните еще один MOUSEEVENTF_MOVE.

Удачи.

p.s. А еще можно просто Button1.Click; ;)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.10.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.03 c
14-51496
BeHoLdeR OReN
2003-09-28 13:23
2003.10.16
Помогите плизззз решить задачу!


14-51425
Zhirnov Maxim
2003-09-23 22:50
2003.10.16
Русский модули к Wise Installer


6-51364
Novinkij
2003-08-21 14:11
2003.10.16
что-то типа сервера


14-51410
Lank
2003-09-25 23:42
2003.10.16
Опять RPC ?


1-51277
asteriks
2003-10-06 20:16
2003.10.16
SIM-карты





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский