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

Вниз

handle   Найти похожие ветки 

 
Troan_81   (2006-11-15 22:01) [0]

Всем салют!
Модератору хочется сказать БОЛЬШОЕ СПАСИБО!
Я вчера нагрубил - немного был не в себе. Больше так не буду !:)

Значит такой вот вопрос опять.
Как получить имя окна? Предположим, что открыта папка с именем "Новая папка", как я могу получить это имя?


 
Джо ©   (2006-11-15 22:06) [1]

> Как получить имя окна? Предположим, что открыта папка с
> именем "Новая папка", как я могу получить это имя?

А если открыто 100 окон, то "имя" какой нужно получить?


 
Troan_81   (2006-11-15 22:08) [2]

Джо приветствую Вас!
Мне нужно получить список всех запущенных окон.


 
Джо ©   (2006-11-15 22:08) [3]

> [2] Troan_81   (15.11.06 22:08)
> Мне нужно получить список всех запущенных окон.

Функция EnumWindows.

К слову: окна не "запускаются".


 
Troan_81   (2006-11-15 22:10) [4]

Я гдето видел или слышал про прогу, которая следила за всеми запущенными процессами. На основе этого я хочу научиться определять имя открытой папки. т.е. получить имя папки.


 
Anatoly Podgoretsky ©   (2006-11-15 22:16) [5]

> Troan_81  (15.11.2006 22:01:00)  [0]

Имя окна можно получить разными методами, например через EnumWindows - вчера об этом говорили. Если окно единственное, то можно и через FindWindows по классу.


 
Troan_81   (2006-11-15 22:17) [6]

Покажите пожалуйста хоть какой-нить пример. Хотя бы маленький. Я никак не могу понять. как это можно реалзовать.


 
Джо ©   (2006-11-15 22:18) [7]

> [4] Troan_81   (15.11.06 22:10)
> Я гдето видел или слышал про прогу, которая следила за всеми
> запущенными процессами. На основе этого я хочу научиться
> определять имя открытой папки. т.е. получить имя папки.

Слушай, у тебя путаница какая-то... Пойми, что нет никак имен у окон, что и "папок-то" на самом деле никаких нет.
Держи простейший код перечисления всех окон верхнего уровня в системе с выводом заголовков их окон в Memo.
Надеюсь, идею уловишь.

function OnWindow (Handle: HWND; Memo: TMemo): BOOL; stdcall;
var
 L: Integer;
 P: PChar;
begin
 L := GetWindowTextLength(Handle) + 1;
 GetMem (P,L+1);
 try
   GetWindowText (Handle,P,L);
   Memo.Lines.Add(P)
 finally
   FreeMem (P);
 end;

 Result := True;
end;

procedure TForm25.Button1Click(Sender: TObject);
begin
 Memo1.Lines.BeginUpdate;
 try
   Memo1.Clear;
   EnumWindows(@OnWindow,Integer(Memo1))
 finally
   Memo1.Lines.EndUpdate
 end;
end;

П.С, в коде нет никаких проверок возвращаемых результатов WinAPI-функций. Так делать нельзя, сразу говорю :)


 
Troan_81   (2006-11-15 22:23) [8]

Спасиба! Буду копать в этом направлении. Хоть чета, а голова немного поняла, чего мне нужно в действительности. Ну, новичек я вот и путаюсь. Строго судить меня пожалуйста не надо.... Я сам это понимаю. Но я учусь!


 
RASkov   (2006-11-16 02:15) [9]

> [8] Troan_81   (15.11.06 22:23)

Может начать учится с чего нибудь попроще? А то так и с ума можно сойти:) шутка.


 
Amoeba ©   (2006-11-16 11:22) [10]

Статья "Мечты вуайериста":
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=432



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

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

Наверх




Память: 0.49 MB
Время: 0.062 c
3-1159288763
Climber
2006-09-26 20:39
2006.12.03
BDE & FoxPro & SQL


15-1163524439
ArtemESC
2006-11-14 20:13
2006.12.03
Как сделать поворотник...


2-1163610135
Riply
2006-11-15 20:02
2006.12.03
Вопросы из разряда "Почему верблюд не ест вату ?"


1-1161325809
MsGuns
2006-10-20 10:30
2006.12.03
Как заставить Excel завершить печать не текущей странице


15-1163163560
koha
2006-11-10 15:59
2006.12.03
Модератору !!!