Форум: "Начинающим";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.046 c