Функция sendmessage отправляет заданное сообщение окну или окнам. Функция вызывает оконную процедуру для заданного окна и не возвращает значение до тех пор, пока оконная процедура не обработает сообщение.
Функция postmessage помещает (вставляет в очередь) сообщение в очередь сообщений, связанную с потоком, который создал заданное окно и возвращает значение без ожидания потока, который обрабатывает сообщение.
Функция makelparam создает 32-разрядное значение для использования в качестве параметра lParam сообщения. Сцепляет два 16-разрядных значения.
Использовать для отправки другим окнам любых windows сообщений.
синтаксис
sendmessage(WM_HSCROLL, 3, 0, w);
postmessage(WM_HSCROLL, 3, 0, w);
Первый параметр - сообщение. Смотрите список в интернете. Можно указать константу или число int соответствующее этой константе.
Второй параметр - дополнительная конкретизирующая сообщение информация (если надо). Константа или число.
Третий параметр - дополнительная конкретизирующая сообщение информация (если надо)Константа или число.
Четвертый параметр - указатель на окно куда послать сообщение.
Пример прокрутки в блокноте, тут надо дополнительная информация во втором параметре:
6 Прокрутка к далеко в лево.
8 Конечная прокрутка.
0 Левая Прокрутка.
1 Листают право.
2 Листают в лево одну страницу.
3 Листают одну страницу право.
7 Прокрутка далекое в право.
4 Прокрутка к абсолютной позиции.
5 Перетаскивают бегунок к определенной позиции.
CODE:
win w=window (-1, "Edit", window ("Безымянный — Блокнот", "Notepad", -1));
sendmessage(WM_HSCROLL, 3, 0, w);//горизонтально вправо на страницу
sendmessage(WM_VSCROLL, 3, 0, w);//вертикально вправо на страницу
sendmessage(WM_HSCROLL, 3, 0, w);//горизонтально вправо на страницу
sendmessage(WM_VSCROLL, 3, 0, w);//вертикально вправо на страницу
Пример закрытия калькулятора:
CODE:
win w=window ("Калькулятор", "CalcFrame", -1);
sendmessage(WM_CLOSE, 0, 0, w);
sendmessage(WM_CLOSE, 0, 0, w);
Пример печатания в блокноте:
CODE:
postmessage(WM_CHAR, 90, 0, w);//отправить z в свернутый блокнот.. http://filesd.net/kibor/codekeys.php Коды клавиш
Пример шутка, удаляет кнопку 5 с калькулятора win 7)
CODE:
win w=window (-1, "Button", 50, 161, -1, -1, window ("Калькулятор", "CalcFrame", -1));
sendmessage(WM_CLOSE, 0, 0, w);
sendmessage(WM_CLOSE, 0, 0, w);
Поменять шрифт кнопки 5 в калькуляторе wi7 обычный режим
CODE:
win w=window (-1, "Button", 50, 161, 34, 27, window ("Калькулятор", "CalcFrame", -1));
int h_font = CreateFont(-13, 0, 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, "Times New Roman");
sendmessage(WM_SETFONT, h_font, 1, w);
int h_font = CreateFont(-13, 0, 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, "Times New Roman");
sendmessage(WM_SETFONT, h_font, 1, w);
Пример получения текста с Edit (Окно "Выполнить") в windowd 7
Указатель получить в шпионе - контрол. Н а поле с текстом выполняемой команды или программы.
CODE:
win w=window (-1, "Edit", window ("Выполнить", "#32770", -1));
char p[100];
sendmessage(WM_GETTEXT,100, address(#p[0]), w);
messagebox (format(#p[0]));
char p[100];
sendmessage(WM_GETTEXT,100, address(#p[0]), w);
messagebox (format(#p[0]));
Пример клика левой кнопки мыши
CODE:
int lParam = makelparam(x, y);
postmessage(WM_MOUSEMOVE, 0, lParam, w);
postmessage(WM_LBUTTONDOWN, 1, lParam, w);
sleep(50);
postmessage(WM_LBUTTONUP, 0, lParam, w);
postmessage(WM_MOUSEMOVE, 0, lParam, w);
postmessage(WM_LBUTTONDOWN, 1, lParam, w);
sleep(50);
postmessage(WM_LBUTTONUP, 0, lParam, w);
Если пишет что не определен первый параметр - пишите, добавлю. Только сначала проверьте или нет ошибки..