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

Вниз

Народ поморите   Найти похожие ветки 

 
Casper_   (2004-01-28 08:45) [0]

Уважаемые мастера
как можно получить список запущеных приложений(не процессов) я пробовал делать так:

procedure TForm1.Button1Click(Sender: TObject);
var
wnd:hwnd;
name:array[0..255] of char;
begin
wnd:=handle;
repeat
wnd:=getwindow(wnd,gw_hwndnext);
if (iswindowvisible(wnd)) and (getparent(wnd)=0) then begin
getwindowtext(wnd,name,sizeof(name));
listbox1.Items.Add(name);
end;
until wnd=0;
end;

но почемуто например делфи повторяется три раза:
Unit1.pas
delphi 7
delphi 7 - Project1[Running]
как можно исправить это


 
Digitman ©   (2004-01-28 08:51) [1]


> получить список запущеных приложений(не процессов)


как это "не процессов" ? работающее приложение и есть Win32-процесс !


> почемуто например делфи повторяется три раза


ты перечислил верхнеуровневые окна, созданные текущим процессом Делфи-приложения. не более того.


 
Casper_   (2004-01-28 09:18) [2]

мне нужно получить список приложений как в диспетчер задачь
как получить список процессов я знаю


 
MBo ©   (2004-01-28 09:19) [3]

что в твоем понимании есть "приложение" ?


 
Akvilon ©   (2004-01-28 09:20) [4]

воспользуйся enumwindow и enumchildwindow


 
pasha_golub ©   (2004-01-28 09:25) [5]


function EnumTopWindowsProc(WindowHandle : HWND; Data : Pointer) : BOOL; stdcall;
var
WinText : array[0..MAX_PATH] of char;
WinStyle, ExStyle : LongInt;
WindowOwner : HWND;
begin
WinStyle := GetWindowLong(WindowHandle, GWL_STYLE);
ExStyle := GetWindowLong(WindowHandle, GWL_EXSTYLE);
GetWindowText(WindowHandle, WinText, SizeOf(WinText));
WindowOwner := GetWindow(WindowHandle, GW_OWNER);
if (WindowOwner = 0) AND
((ExStyle AND WS_EX_TOOLWINDOW) = 0) AND
((WinStyle AND WS_VISIBLE) <> 0) then
Form1.Memo1.Lines.Append(WinText);
Result := true;
end;

procedure TForm1.Button1Click(Sender:Tobject);
begin
EnumWindows(EnumTopWindowsProc);
end;


 
Maxud ©   (2004-01-28 09:28) [6]

http://www.delphikingdom.com/asp/viewitem.asp?UrlItem=/helloworld/wininf.htm


 
Casper_   (2004-01-28 09:30) [7]

как в Ctrl+Alt+Del там есть приложения и есть процессы мне нужно получить именно список приложений


 
akvilon ©   (2004-01-28 09:35) [8]

просто бывают процессы с окнами и без окон, но всё оно процессы
используй enumwindow -- самый верный вариант!!!


 
Alexander666 ©   (2004-01-28 11:23) [9]

Есть такая фишка, как Пачеко с Тейксейрой (книга, ессесно) - вот там и почитай. В Интернете ссылки на нее есть, найдешь сам.



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

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

Наверх




Память: 0.48 MB
Время: 0.02 c
14-16698
Fants
2004-01-16 11:08
2004.02.06
Перенос Delphi c одного Win2000 на другой win2000


1-16227
xmrz
2004-01-26 21:25
2004.02.06
Проблема с переносом фотографий из Photoshop в приложение через б


1-16223
Крутыш
2004-01-26 18:24
2004.02.06
одна копия приложения


14-16709
Undert
2004-01-16 15:34
2004.02.06
Какие причины могут


1-16489
VladimirC
2004-01-26 17:23
2004.02.06
Outlook