Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.04;
Скачать: CL | DM;

Вниз

Взаимодействие с чужими окнами   Найти похожие ветки 

 
lis1985   (2006-03-03 20:04) [0]

Как поставить флажок в CheckBox чужого окна?


 
Handle   (2006-03-03 20:21) [1]

Вот нашёл в Delphi World сам не пробвл.

var
 h1, h2: hwnd;
begin
 h1 := FindWindow("classname","caption");
 h2 := FindWindowEx(h1, 0, "TCheckBox", "Флажок");
 SendMessage(h2, BM_SetCheck, 1, 0);
end;


 
lis1985   (2006-03-04 06:22) [2]

Что-то не хочет работать. Вот такой вопрос возник,  вот в этих кавычках "Флажок" что указывается?.


 
GanibalLector ©   (2006-03-04 13:30) [3]

2 lis1985   (04.03.06 06:22) [2]
И не будет,пока ты не найдешь имена и классы окон. Поможет тебе сканер окон,который покажет названия и классы форм.Кстати, FindWindowEx может быть несколько.


 
Handle   (2006-03-04 16:10) [4]


> GanibalLector ©   (04.03.06 13:30) [3]
> Поможет тебе сканер окон,который покажет названия и классы
> форм


Например Greatis WinDowse.


> lis1985   (04.03.06 06:22) [2]
> Что-то не хочет работать. Вот такой вопрос возник,  вот
> в этих кавычках "Флажок" что указывается?.


Имя искомого окна указывается, если у тебя CheckBox один но ты не знаешь как его зовут можно по классу.

FindWindowEx(h1, 0, "TCheckBox", nil);


 
lis1985   (2006-03-04 19:11) [5]

Окно-то я нашёл, а вот CheckBox не определяет


 
lis1985   (2006-03-04 19:17) [6]

У меня там 2 CheckBox


 
Handle   (2006-03-04 20:12) [7]

procedure TForm1.Button1Click(Sender: TObject);
var
h1, h2: hwnd;
begin
h1 := FindWindow(nil,"окно");
if h1 = 0 then
begin
ShowMessage("Окно не найдено !!");
Exit;
end
else
begin
h2 := FindWindowEx(h1, 0, nil, "надпись на checkbox"е");
if h2 <> 0 then
begin
SendMessage(h2, BM_SetCheck, 1, 0);
end
else
begin
ShowMessage("CheckBox не найден!!");
end;
end;
end;


Найди в инете и скачай программу Greatis WinDowse, определи класс и(или) имя.


 
Handle   (2006-03-04 20:24) [8]


> Найди в инете и скачай программу Greatis WinDowse, определи
> класс и(или) имя.


А лучше сделай так.
procedure TForm1.Timer1Timer(Sender: TObject);
var
s: string;
h: HWND;
buf: array [0..127] of Char ;
begin
Timer1.Interval:= 1 ;
h := WindowFromPoint(Mouse.CursorPos);
SetLength(s, SendMessage(h, WM_GETTEXTLENGTH, 0, 0)+1);
SendMessage(h, WM_GETTEXT, length(s), Integer(PChar(s)));
SetLength(s, lStrLen(PChar(s)));
GetClassName(h,buf,127);
Label1.Caption := "Имя окна - " + s;
Label2.Caption:= "Имя класса - " + buf ;
end;


 
n0name   (2006-03-05 07:36) [9]

Находишь первый checkbox потом GetNextWindow.


 
lis1985   (2006-03-12 10:18) [10]

И ещё вот такой вопрос. Как заполнить Edit чужого окна?


 
Handle   (2006-03-12 10:54) [11]

procedure TForm1.Button2Click(Sender: TObject);
begin
Form2.Show;
Form2.FormStyle:= fsStayOnTop;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
h1, h2: hwnd;
begin
h1 := FindWindow(nil,"Form2");
if h1 = 0 then
begin
ShowMessage("Окно не найдено !!");
Exit;
end
else
begin
h2 := FindWindowEx(h1, 0, "TEdit", nil);
if h2 <> 0 then
begin
SendMessage(h2, WM_SETTEXT, 0, Integer(PChar("ТЕКСТ")));
end
else
begin
ShowMessage("TEdit не найден!!");
end;
end;
end;


 
Lis1985   (2006-03-12 12:35) [12]

Ок. Спасибо.


 
Lis1985   (2006-03-12 13:52) [13]

Если у меня два "Edit"? и как пользоваться GetNextWindow?


 
Handle   (2006-03-12 13:59) [14]

var
 Form1: TForm1;
 h1, h2: hwnd;
implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
h1 := FindWindow(nil,"Form2");
if h1 = 0 then
begin
ShowMessage("Окно не найдено !!");
Exit;
end
else
begin
h2 := FindWindowEx(h1, 0, "TEdit", nil);
if h2 <> 0 then
begin
SendMessage(h2, WM_SETTEXT, 0, Integer(PChar("ТЕКСТ")));
end
else
begin
ShowMessage("TEdit не найден !!");
end;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Form2.Show;
Form2.FormStyle:= fsStayOnTop;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
h2 := GetWindow(h2, GW_HWNDNEXT);
SendMessage(h2, WM_SETTEXT, 0, Integer(PChar("ТЕКСТ")));
end;


 
Lis1985   (2006-03-12 14:23) [15]

Что-то не получается! У меня есть два Edit на чужом окне. Мне необходимо заполнить 2ой Edit, а заполняется первый.


 
Handle   (2006-03-12 14:29) [16]


> Lis1985   (12.03.06 14:23) [15]
> Что-то не получается! У меня есть два Edit на чужом окне.
>  Мне необходимо заполнить 2ой Edit, а заполняется первый.
>


Сосредаточься, внимательно посмотри на экран компьютера и мысленно передай мне код своей программы, частота передачи 123456789 Гц.


 
Lis1985   (2006-03-12 14:42) [17]

Значит, нашёл главное окно:
h1 := FindWindow(nil,"Вход");

Окно "Вход" имеет два "Edit".

Нахожу "Edit":
h2 := FindWindowEx(h1, 0, "Edit", "  ");
но находится не тот "Edit", который мне нужен. Внимание вопрос! Как найти "Edit", который мне нужен?


 
Handle   (2006-03-12 15:09) [18]

Кто нибудь отведите меня в поле и пристрелите.


 
Lis1985   (2006-03-12 22:02) [19]

Что не понятно-то?


 
Lis1985   (2006-03-12 22:26) [20]

В окне имеется два одинаковых "Edit".
Таким образом я нахожу и изменяю содержимое 1ого "Edit":
h1 := FindWindow(nil,"Вход");
h2 := FindWindowEx(h1, 0, "Edit", nil);
SendMessage(h2, WM_SETTEXT, 0, Integer(PChar("ТЕКСТ")));

Как мне изменить содержимое 2ого "Edit"?


 
Handle   (2006-03-13 07:45) [21]

procedure TForm1.Button1Click(Sender: TObject);
var
 h1, h2: hwnd;
begin
h1 := FindWindow(nil,"Form2");
h2 := FindWindowEx(h1, 0, "TEdit", nil); // Текст появится в Edit2
//h2 := GetWindow(h2, GW_HWNDNEXT);  // <- Если добавишь эту строчку, то в Edit1
SendMessage(h2, WM_SETTEXT, 0, Integer(PChar("ТЕКСТ")));
end;


Если у тебя три и больше TEdit, то текст добавляется в последний созданный


 
n0name   (2006-03-13 09:51) [22]


h1 := FindWindow(nil,"Вход");
h2 := FindWindowEx(h1, 0, "Edit", nil);
h2 := GetNextWindow(h2, GW_HWNDNEXT);
SendMessage(h2, WM_SETTEXT, 0, Integer(PChar("ТЕКСТ")));



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

Текущий архив: 2006.06.04;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.046 c
11-1127710464
DmiSb
2005-09-26 08:54
2006.06.04
Как нарисовать кнопочку в EditBoxe


9-1131153824
апвапв
2005-11-05 04:23
2006.06.04
opengl+шейдеры


8-1136479603
Zoom
2006-01-05 19:46
2006.06.04
Сравнение аудио файлов


2-1147676291
Мурзилка
2006-05-15 10:58
2006.06.04
TTreeView


15-1146669328
Leonid Troyanovsky
2006-05-03 19:15
2006.06.04
Sorry