[SIZE="2"][FONT="Courier New"][COLOR="Blue"]struct[/COLOR] ptn[/FONT] [COLOR="SeaGreen"]//Ну типа структура POINTAPI[/COLOR]
[FONT="Courier New"]x
y
[COLOR="Blue"]end struct[/COLOR][/FONT]
[FONT="Courier New"][COLOR="Blue"]Const[/COLOR] WM_CLICK = &HF5[/FONT]
[FONT="Courier New"][COLOR="Blue"]call[/COLOR] GetCursorPos(ptn)[/FONT] [COLOR="SeaGreen"]//Получаем текущие координаты курсора[/COLOR]
[FONT="Courier New"]hWnd = WindowFromPoint(ptn.x,ptn.y)[/FONT] [COLOR="SeaGreen"]//Получили хендл окна по заданным координатам[/COLOR]
[FONT="Courier New"][COLOR="Blue"]call [/COLOR]SendMessageA(hWnd,WM_CLICK,0,0)[/FONT] [COLOR="SeaGreen"]//Посылаем клик мышкой окну по хендлу[/COLOR][/SIZE]
Управление мышью через API.
Здравствуйте уважаемые! Помогите новичку в API программировании.. Никак не могу понять, как работать с мышью через апи, доков кучу перечитал, но так ниче конкретно про мышь и не понял, а сорцов нету нигде таких =( Вот, кому не трудно, напишите плиз мне сорец на Delphi7 в котром например выполняется щелчок мышью по заданному месту на экране, может я хоть так разберусь.. Заранее благодарю!!!
GetCursorPos > user32
WindowFromPoint > user32
SendMessageA > user32
Код:
Прейдется посылать сначало WM_LBUTTONDOWN с кодом "&H201", а потом "WM_LBUTTONUP" с кодом "&H202". И при этом в "SendMessageA" в качестве последнего параметра указать координаты: в младшее слово поместить X, а в старшее - Y. К тому же, уже относительно начало координат текущего окна.
uses
Windows, Messages;
function DlgProc(hWin, uMsg, wParam, lParam: Integer): Integer; stdcall;
begin
Result := 0;
case uMsg of
WM_INITDIALOG:
Begin
SetCursorPos,100,200 перемещает курсор по указанным кардинатам
GetCursorPos,структура point получает кардинаты мыши
ShowCaret,hWin прячет курсор если неошибаюсь
end;
WM_COMMAND:
begin
case LoWord(wParam) of
...........
end;
end;
//При нажатии на кнопку "Х" в шапке программы закрываем приложение
WM_DESTROY, WM_CLOSE: PostQuitMessage(0);
end;
end;
begin
//Подключаем файл ресурсов
{$R example.res}
//При запуске программы открываем диалоговое окно MAIN_WINDOW
DialogBox(hInstance, 'MAIN_WINDOW', 0, @DlgProc);
end