Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

handle [D7, XP]


Troan_81 ©   (2006-11-15 22:01:00) 

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

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


Amoeba   (2006-11-16 11:22:00) [1]

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


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

> [8] Troan_81   (15.11.06 22:23)

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


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

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


Джо   (2006-11-15 22:18:00) [4]

> [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:17:00) [5]

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


Anatoly Podgoretsky   (2006-11-15 22:16:00) [6]

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

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


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

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


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

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


Джо   (2006-11-15 22:08:00) [9]

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

Функция EnumWindows.

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


Джо   (2006-11-15 22:06:00) [10]

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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо