Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 30.04.2012, 23:27
Flop88 Flop88 вне форума
Прохожий
 
Регистрация: 30.04.2012
Сообщения: 34
Репутация: 10
Смех Ребят, нужна ваша помощь :)

Делфи я только начал изучать и вот хочу простенькую прогу написать, но никак не получается. Суть проги: При нажатии на кнопку отправляется сообщение в то текстовое поле, куда заранее клацнул мышкой.
Ответить с цитированием
  #2  
Старый 30.04.2012, 23:29
Flop88 Flop88 вне форума
Прохожий
 
Регистрация: 30.04.2012
Сообщения: 34
Репутация: 10
По умолчанию

Код:
procedure TForm1.btn1Click(Sender: TObject);
begin
Randomize;
aa:= random(999999);
SendMessage(hl, WM_SETTEXT, 0,  integer(aa));
end;
Не прокатывает
Ответить с цитированием
  #3  
Старый 30.04.2012, 23:39
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

При "клацании" на кнопку, фокус с текстового поля снимается. Посылаешь сообщение на деревню к дедушке.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #4  
Старый 30.04.2012, 23:58
Flop88 Flop88 вне форума
Прохожий
 
Регистрация: 30.04.2012
Сообщения: 34
Репутация: 10
По умолчанию

Эм, а как тогда сделать так, что бы когда нажмёшь на поле, нажмёшь ну допустим F1 и отправляло сообщение ?
Ответить с цитированием
  #5  
Старый 01.05.2012, 00:21
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Так и пиши, клавишу, а не кнопку:
Код:
procedure TForm1.OnKeyDown(Sender : TObject; var Key: Word; Shift: TShiftState);
begin
  if Key = VK_F1 then
  ...
end;
и не забудь свойство формы KeyPreview, выставить в True.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #6  
Старый 01.05.2012, 00:45
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

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  
Старый 01.05.2012, 01:17
Flop88 Flop88 вне форума
Прохожий
 
Регистрация: 30.04.2012
Сообщения: 34
Репутация: 10
По умолчанию

Спасибо, помогли очень сильно, но тут же появился ещё 1 вопрос. Текст по нажатию клавиши он пишет в том окне на которое я нашёл курсором,но пределах формы. Как сделать так, чтоб он писал не только в этих пределах ?
Ответить с цитированием
  #8  
Старый 01.05.2012, 01:21
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Я так понимаю, в чужом приложении? FindWindow.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #9  
Старый 01.05.2012, 01:25
Flop88 Flop88 вне форума
Прохожий
 
Регистрация: 30.04.2012
Сообщения: 34
Репутация: 10
По умолчанию

Цитата:
Сообщение от angvelem
Я так понимаю, в чужом приложении? FindWindow.
Ну мне нужно чтоб при нажатии кнопки писалось сообщение в скайпе(в поле на которое клацнул)
Ответить с цитированием
  #10  
Старый 01.05.2012, 01:25
Flop88 Flop88 вне форума
Прохожий
 
Регистрация: 30.04.2012
Сообщения: 34
Репутация: 10
По умолчанию

Код:
hl := WindowFromPoint(Mouse.CursorPos);
Я использую, но работает только в пределах формы
Ответить с цитированием
  #11  
Старый 01.05.2012, 01:38
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Эта тема неоднократно обсуждалась на форуме. Воспользуйся поиском.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #12  
Старый 01.05.2012, 01:52
Flop88 Flop88 вне форума
Прохожий
 
Регистрация: 30.04.2012
Сообщения: 34
Репутация: 10
По умолчанию

Не могу найти
Ответить с цитированием
  #13  
Старый 01.05.2012, 01:58
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Не можешь или не хочешь? смотри и выбирай нужное.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #14  
Старый 01.05.2012, 02:17
Аватар для YVitaliy
YVitaliy YVitaliy вне форума
Местный
 
Регистрация: 14.12.2011
Сообщения: 481
Версия Delphi: Borland Delphi7
Репутация: 17
По умолчанию

Чужое окно так ловится легко, но чтобы отследить "клик" мышкой нужно хук делать, кажись. Я когда-то делал генератор паролей ( ) таким способом, то для "отлавливания" нужного окна вызывал прозрачную форму с непрозрачной точкой на ней - ловил окно под точкой и понеслась... Да, веселые времена были. Пароль был 12-ти значный, латиница и цифры...
Ответить с цитированием
  #15  
Старый 01.05.2012, 02:24
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Ему не нужно отслеживать мышку, достаточно найти окно, затем перечисляя все дочерние найти то, которое имеет фокус. Но весь прикол в том, что такого окна не будет.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:24.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025