IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> перебор окон, открытых
Client
сообщение 1.07.2010 21:16
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


погуглив, получил такой код
function enumproc(wnd:hwnd; lparam:lparam):BOOL; stdcall;
var
s,ss:array [1..30] of char;
s1:string [30];
begin
GetClassName(wnd,@s,20);
GetWindowText(wnd,@ss,20);
form3.Memo1.Lines.Add(ss);
Result:=true;
end;


procedure TForm3.Button1Click(Sender: TObject);
var
wnd,wnd1,wnd2:hwnd;
s: array [1..30] of char;
begin
Memo1.Clear;
EnumWindows(@enumproc,0)
end;
Выводит очень большой список, а мне нужно только список тех окон, которые открыты. Мне надо найти окно по части имени, вот и решил перебрать все окна smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 2.07.2010 19:08
Сообщение #2


Гость






Цитата
LParam вроде тот же Integer. Но через него передается целый массив строк
Стоп, стоп, стоп. Во-первых, не массив строк, а TStrings, то есть дельфийский класс. То есть, указатель на него. Который имеет ту же длину, что и LPARAM. Так что никакой магии - только ловкость рук smile.gif

Во вторых:
Цитата
А про массив и PChar даже не знал, как увидел такой пример, так и делал по-нему.
А к первоисточнику обратиться не пробовал? Вот описание функции MSDN -> GetClassName. Что видим?

Цитата
int WINAPI GetClassName(
__in HWND hWnd,
__out LPTSTR lpClassName, // <--- Вот то, что нужно !!!
__in int nMaxCount
);

LPTSTR видел? А что это такое, расскажешь мне? smile.gif Напечатай в IDE Delphi и подведи мышь. Мне, например, показывается вот такое сообщение: "LPTSTR - System.PWideChar". Это в 2009-ой, в ранних версиях будет PChar. Опять магия? smile.gif

 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 13.07.2025 22:27
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"