![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Делфи я только начал изучать и вот хочу простенькую прогу написать, но никак не получается. Суть проги: При нажатии на кнопку отправляется сообщение в то текстовое поле, куда заранее клацнул мышкой.
![]() |
|
#2
|
|||
|
|||
|
Код:
procedure TForm1.btn1Click(Sender: TObject); begin Randomize; aa:= random(999999); SendMessage(hl, WM_SETTEXT, 0, integer(aa)); end; ![]() |
|
#3
|
||||
|
||||
|
При "клацании" на кнопку, фокус с текстового поля снимается. Посылаешь сообщение на деревню к дедушке.
|
|
#4
|
|||
|
|||
|
Эм, а как тогда сделать так, что бы когда нажмёшь на поле, нажмёшь ну допустим F1 и отправляло сообщение ?
|
|
#5
|
||||
|
||||
|
Так и пиши, клавишу, а не кнопку:
Код:
procedure TForm1.OnKeyDown(Sender : TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_F1 then ... end; |
|
#6
|
|||
|
|||
|
Flop88 , отправить нужно сообщение или просто текст в текстовое поле? а то я подозреваю что если только начал изучать delphi то отправка сообщений както рановато для рначала)
могу предложить такой код: (на форме 3 текстовых поля Edit и кнопка) Код:
var
Form1: TForm1;
n:Integer;
implementation
{$R *.dfm}
procedure TForm1.Edit1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
n:=1;
end;
procedure TForm1.Edit2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
n:=2
end;
procedure TForm1.Edit3MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
n:=3
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
case n of
1:Edit1.Text:='aaa';
2:Edit2.Text:='aaa';
3:Edit3.Text:='aaa';
end;
end;
|
|
#7
|
|||
|
|||
|
Спасибо, помогли очень сильно, но тут же появился ещё 1 вопрос. Текст по нажатию клавиши он пишет в том окне на которое я нашёл курсором,но пределах формы. Как сделать так, чтоб он писал не только в этих пределах ?
![]() |
|
#8
|
||||
|
||||
|
Я так понимаю, в чужом приложении? FindWindow.
|
|
#9
|
|||
|
|||
|
Цитата:
|
|
#10
|
|||
|
|||
|
Код:
hl := WindowFromPoint(Mouse.CursorPos); |
|
#11
|
||||
|
||||
|
Эта тема неоднократно обсуждалась на форуме. Воспользуйся поиском.
|
|
#12
|
|||
|
|||
|
Не могу найти
![]() |
|
#14
|
||||
|
||||
|
Чужое окно так ловится легко, но чтобы отследить "клик" мышкой нужно хук делать, кажись. Я когда-то делал генератор паролей (
) таким способом, то для "отлавливания" нужного окна вызывал прозрачную форму с непрозрачной точкой на ней - ловил окно под точкой и понеслась... Да, веселые времена были. Пароль был 12-ти значный, латиница и цифры... |
|
#15
|
||||
|
||||
|
Ему не нужно отслеживать мышку, достаточно найти окно, затем перечисляя все дочерние найти то, которое имеет фокус. Но весь прикол в том, что такого окна не будет.
|