Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Список запущенных приложений

330
10 декабря 2006 года
kastron
215 / / 17.09.2006
Всем привет.Вот занимаюсь над кодом,который бы отлавливал список запущенных окон (или процессов) и писал их в listbox
Я знаю только один способ
-------------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
VAR
Wnd : hWnd;
buff: ARRAY [0..127] OF Char;
begin
ListBox1.Clear;
Wnd := GetWindow(Handle, gw_HWndFirst);
WHILE Wnd <> 0 DO BEGIN {Hе показываем:}
IF (Wnd <> Application.Handle) AND
IsWindowVisible(Wnd) AND
(GetWindow(Wnd, gw_Owner) = 0) AND
(GetWindowText(Wnd, buff, sizeof(buff)) <> 0)
THEN BEGIN
GetWindowText(Wnd, buff, sizeof(buff));
ListBox1.Items.Add(StrPas(buff));
END;
Wnd := GetWindow(Wnd, gw_hWndNext);
END;
ListBox1.ItemIndex := 0;
end;
-------------------------------------------------------------------------
Может кто-то знает другой способ?
С уважением,SNAKE
257
10 декабря 2006 года
kosfiz
1.6K / / 18.09.2005
Код:
function AddWinInfo(WinHandle: HWnd; list:TStringList): Boolean;
stdcall;
var  WinCaption: array[0..255] of Char;
begin
  Result:=True;
  if isWindowVisible(WinHandle) then
  if GetWindow(WinHandle,GW_OWNER)=0 then
  begin
  GetWindowText(WinHandle,WinCaption,SizeOf(WinCaption));
  if (WinCaption<>'')and (WinCaption<>'Program Manager')  then
  List.Add(WinCaption);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var descript:TStringList;
begin
descript:=TStringList.Create;
EnumWindows(@AddWinInfo,LParam(descript));
ListBox1.Clear;
ListBox1.Items.AddStrings(descript);
descript.Destroy;
end;
261
10 декабря 2006 года
ahilles
1.5K / / 03.11.2005
Довольно кривоватый код, но тем не менее:
Код:
var ProcessesSnapshot:THandle;
    ProcessRecord:TProcessEntry32;
begin
  Listbox1.clear;
  ProcessesSnapshot:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
  ProcessRecord.dwSize:=sizeof(ProcessRecord);
  if Process32First(ProcessesSnapshot,ProcessRecord) then
   begin //n 101
    repeat
     Listbox1.items.add(ProcessRecord.szExeFile)
    until not Process32Next(ProcessesSnapshot,ProcessRecord);
   end;  //k 101
  CloseHandle(ProcessesSnapshot);
257
11 декабря 2006 года
kosfiz
1.6K / / 18.09.2005
так надо список окон или процессов или и то и другое? вообще и то и другое есть здеся переделать под ListBox не сложно.
261
11 декабря 2006 года
ahilles
1.5K / / 03.11.2005
извините за флуд
короче он нам мозги парит
зачем надо по каждому глупому вопросу создавать тему
сначала надо пройтись по сайту, просмотреть исходники, потом только задавать вопрос
387
11 декабря 2006 года
Ihbif19
421 / / 28.10.2004
Цитата: ahilles
он нам мозги парит

зачем надо по каждому глупому вопросу создавать тему
сначала надо пройтись по сайту, просмотреть исходники, потом только задавать вопрос


Присоединяюсь, не в первый раз такое...

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог