Как получить список всех окон

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

На форму нужно поместить компонент дерева TTreeView (tv1) и кнопку TButton (btnEnum). В обработчике события нажатия на кнопку запишите:


procedure TForm1.btnEnum(Sender: TObject);
begin
  Screen.Cursor:= crHourGlass;
  try
    tv1.Items.Clear;
    EnumWindows(@EnumWindowsProc,0);
  finally
    Screen.Cursor:= crDefault;
  end;
end;
Здесь сначала мы очищаем TTreeView (tv1) и вызываем функцию EnumWindows, передавая ей функцию обратного вызова EnumWindowsProc, которая и будет делать основную работу по поиску окон и заполнение дерева.

Для начала функцию обратного вызова EnumWindowsProc нужно объявить:

{ ... }
var
  Form1: TForm1;

{ ... }

function EnumWindowsProc(Wnd: HWND; ParentNode: TTreeNode): Bool; stdcall;
Функция обратного вызова EnumWindowsProc:

function EnumWindowsProc(Wnd: HWND; ParentNode: TTreeNode): Bool; stdcall;
const
  ClassNameLen = 512;    // т.к. мы не знаем длину имени класса заранее, выделим достаточно места
var
  Text: string;                    // Заголовок окна
  TextLen: integer;           // Длина заголовка
  ClassName: array[0..ClassNameLen-1] of Char;    // буфер для имени класса
  Node: TTreeNode;
  NodeName: string;
begin
  Result:= true;
  // Будем искать только прямых потомков, остальные игнорируем
  if Assigned(ParentNode) and (GetParent(Wnd) <> HWND(ParentNode.Data)) then
    Exit;
  // Получаем длину заголовка окна
  TextLen:= SendMessage(Wnd, WM_GETTEXTLENGTH, 0, 0);
  // Устанавливаем длину строковой переменной
  SetLength(Text, TextLen);
  if TextLen > 0 then
    SendMessage(Wnd, WM_GETTEXT, TextLen+1, LParam(Text));
  // Слишком длинные строки обрезаем
  if TextLen > 100 then
    Text:= Copy(Text, 1, 100) + '  ' ;
  GetClassName(Wnd, ClassName, ClassNameLen);
  ClassName[ClassNameLen-1]:= #0;
  if Text = '' then
    NodeName:= 'Без названия (' + ClassName + ')'
  else
    NodeName:= Text + ' (' + ClassName + ') ';
  Node:= Form1.tv1.Items.AddChild(ParentNode, NodeName);
  Node.Data:= Pointer(Wnd);
  EnumChildWindows(Wnd, @EnumWindowsProc, LParam(Node));
end;

Вот и всё, Удачи!


Добавил(а): Tino Дата: 2016-11-05


  1. Wdus
    Wdus 8 months ago
    <a href="https://european-yachts.com/rent-yacht-montenegro">снять яхту черногория</a> | https://european-yachts.com/
  2. MvlTU
    MvlTU 8 months ago
    Drugs information leaflet. Long-Term Effects. <a href="https://viagra4u.top">cost of generic viagra without insurance</a> in US. All trends of pills. Get here.
    [url=https://amp.en.vaskar.co.in/translate/1?to=ru&amp;from=en&amp;source=Drug%20prescribing%20information.%20Effects%20of%20Drug%20Abuse.%20%3Ca%20href%3D%22https%3A%2F%2Fprednisone4u.top%22%3Ecan%20i%20get%20cheap%20prednisone%20prices%3C%2Fa%3E%20in%20Canada.%20Best%20information%20about%20drugs.%20Get%20here.%20%0D%0A%3Ca%20href%3Dhttps%3A%2F%2Fgoprint.pk%2Fproducts%2F1924%2Fbest-wife-ever%3EBest%20information%20about%20medicine.%3C%2Fa%3E%20%3Ca%20href%3Dhttp%3A%2F%2Fgamelove7.net%2Farchives%2F6813517%23comment-936202%3EBest%20trends%20of%20medicament.%3C%2Fa%3E%20%3Ca%20href%3Dhttps%3A%2F%2Fhappilyeverblog.com%2F5-things-i-do-before-noon%2F%23comment-2750%3ESome%20about%20medicine.%3C%2Fa%3E%20%204f703ca%20&amp;result=%D0%98%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F%20%D0%BE%20%D0%BD%D0%B0%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B8%20%D0%BB%D0%B5%D0%BA%D0%B0%D1%80%D1%81%D1%82%D0%B2.%20%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B8%D1%8F%20%D0%B7%D0%BB%D0%BE%D1%83%D0%BF%D0%BE%D1%82%D1%80%D0%B5%D0%B1%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%BD%D0%B0%D1%80%D0%BA%D0%BE%D1%82%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8.%20%3Ca%20href%3D%22https%3A%2F%2Fprednisone4u.top%22%20%3E%20%D0%BC%D0%BE%D0%B3%D1%83%20%D0%BB%D0%B8%20%D1%8F%20%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C%20%D0%B4%D0%B5%D1%88%D0%B5%D0%B2%D1%8B%D0%B5%20%D1%86%D0%B5%D0%BD%D1%8B%20%D0%BD%D0%B0%20%D0%BF%D1%80%D0%B5%D0%B4%D0%BD%D0%B8%D0%B7%D0%BE%D0%BD%3C%2Fa%3E%20%D0%B2%20%D0%9A%D0%B0%D0%BD%D0%B0%D0%B4%D0%B5.%20%D0%9B%D1%83%D1%87%D1%88%D0%B0%D1%8F%20%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F%20%D0%BE%20%D0%BD%D0%B0%D1%80%D0%BA%D0%BE%D1%82%D0%B8%D0%BA%D0%B0%D1%85.%20%D0%98%D0%B4%D0%B8%20%D1%81%D1%8E%D0%B4%D0%B0.%20%3Ca%20href%3Dhttps%3A%2F%2Fgoprint.pk%2Fproducts%20%2F%201924%20%2F%20best-wife-ever%3E%D0%BB%D1%83%D1%87%D1%88%D0%B0%D1%8F%20%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F%20%D0%BE%20%D0%BC%D0%B5%D0%B4%D0%B8%D1%86%D0%B8%D0%BD%D0%B5.%3C%20%2F%20a%3E%20%3Ca%20href%3Dhttp%3A%2F%2Fgamelove7.net%2Farchives%2F6813517%23comment-936202%3E%D0%BB%D1%83%D1%87%D1%88%D0%B8%D0%B5%20%D1%82%D0%B5%D0%BD%D0%B4%D0%B5%D0%BD%D1%86%D0%B8%D0%B8%20%D0%BC%D0%B5%D0%B4%D0%B8%D1%86%D0%B8%D0%BD%D1%8B.%3C%2Fa%3E%20%3Ca%20href%3Dhttps%3A%2F%2Fhappilyeverblog.com%20%2F%205-things-i-do-before-noon%20%2F%20%23comment-2750%3E%D0%BD%D0%B5%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%BE%20%D0%BC%D0%B5%D0%B4%D0%B8%D1%86%D0%B8%D0%BD%D0%B5.%3C%20%2F%20a%3E%204f703ca]Some news about medicament.[/url] [url=http://eidsvoll-dk.no/edk-forum/topic/raul-fixed-matches/page/2/#post-346246]Actual information about medication.[/url] [url=http://en.nextool.cn/index.php?g=&amp;m=article&amp;a=index&amp;id=76&amp;cid=3]Best news about drugs.[/url] 97305aa
  3. animenimeru
    animenimeru 8 months ago
    Я думаю, что Вы не правы. Я уверен. Пишите мне в PM, обсудим.

    ---------

    <a href="https://animenime.ru/naruto-muzyka-openingi-endingi-ost">https://animenime.ru/naruto-muzyka-openingi-endingi-ost</a>| https://animenime.ru/
  4. STAHLBERG8007
    STAHLBERG8007 7 months ago
    https://indramat.ru/amperazh-v-chastotnike/
  5. eoqeavo
    eoqeavo 7 months ago
    [url=http://mewkid.net/when-is-xuxlya3/]Amoxicillin No Prescription[/url] <a href="http://mewkid.net/when-is-xuxlya3/">Buy Amoxicillin Online</a> nmz.rfks.thedelphi.ru.mbh.pf http://mewkid.net/when-is-xuxlya3/
  6. xapabuneuvi
    xapabuneuvi 7 months ago
    [url=http://mewkid.net/when-is-xuxlya3/]Amoxil Causes Gallstones[/url] <a href="http://mewkid.net/when-is-xuxlya3/">Amoxicillin 500mg</a> mnc.uvwr.thedelphi.ru.oqj.af http://mewkid.net/when-is-xuxlya3/
  7. oobiqujozoyp
    oobiqujozoyp 7 months ago
    [url=http://mewkid.net/when-is-xuxlya3/]Buy Amoxil[/url] <a href="http://mewkid.net/when-is-xuxlya3/">Buy Amoxicillin Online</a> nlj.nddt.thedelphi.ru.hlx.sz http://mewkid.net/when-is-xuxlya3/
  8. ituduau
    ituduau 7 months ago
    [url=http://mewkid.net/when-is-xuxlya3/]Amoxicillin Without Prescription[/url] <a href="http://mewkid.net/when-is-xuxlya3/">Amoxicillin Online</a> ouq.jvmf.thedelphi.ru.njx.eg http://mewkid.net/when-is-xuxlya3/
  9. ivemeta
    ivemeta 6 months ago
    [url=http://mewkid.net/when-is-xuxlya3/]Amoxicillin Without Prescription[/url] <a href="http://mewkid.net/when-is-xuxlya3/">Amoxicillin No Prescription</a> kid.fhyj.thedelphi.ru.vxz.jt http://mewkid.net/when-is-xuxlya3/
  10. ayukitasabo
    ayukitasabo 6 months ago
    [url=http://mewkid.net/when-is-xuxlya3/]Amoxicillin Without Prescription[/url] <a href="http://mewkid.net/when-is-xuxlya3/">Amoxicillin 500 Mg</a> clz.pcfq.thedelphi.ru.ldt.ws http://mewkid.net/when-is-xuxlya3/
  11. gcqqsivij
    gcqqsivij 6 months ago
    Как получить список всех окон - The Delphi
    <a href="http://www.g79i72v5cm1jqj625y06a386n3wowss8s.org/">agcqqsivij</a>
    gcqqsivij http://www.g79i72v5cm1jqj625y06a386n3wowss8s.org/
    [url=http://www.g79i72v5cm1jqj625y06a386n3wowss8s.org/]ugcqqsivij[/url]
  12. vnghfhkwhr
    vnghfhkwhr 6 months ago
    Как получить список всех окон - The Delphi
    <a href="http://www.gp61t0j9317i2p8h28ing5qaiu032j5qs.org/">avnghfhkwhr</a>
    vnghfhkwhr http://www.gp61t0j9317i2p8h28ing5qaiu032j5qs.org/
    [url=http://www.gp61t0j9317i2p8h28ing5qaiu032j5qs.org/]uvnghfhkwhr[/url]
  13. vardenafil price
    vardenafil price 5 months ago
    levitra (vardenafil) https://vegavardenafil.com/ vardenafil 20mg tablets
  14. sildenafil 100mg india
    sildenafil 100mg india 5 months ago
    eunice 4 tabs https://eunicesildenafilcitrate.com/ sildenafil capsule
  15. generic tadalafil united states
    generic tadalafil united states 5 months ago
    what is tadalafil https://elitadalafill.com/ tadalafil 40
  16. alprostadil suppository uses
    alprostadil suppository uses 5 months ago
    alprostadil cream for sale https://alprostadildrugs.com/ aloprostadil
  17. chloroquineorigin
    chloroquineorigin 3 months ago
    https://chloroquineorigin.com/ aralen chloroquine hydroxychloroquine plaquenil <a href="https://chloroquineorigin.com/">hydroxychloroquine chloroquine </a> chloroquine autophagy
  18. avanafil
    avanafil 3 months ago
    avanafil dosing <a href="https://avanaavanafil.com/#">avanafil stendra dosage</a>
  19. abobiap
    abobiap 3 months ago
    <a href="http://priligyset.com/">priligy 90mg canada[/url]</a>
  20. tadalafil liquid
    tadalafil liquid 3 months ago
    evolution peptides tadalafil <a href="https://elitadalafill.com/">tadalafil warnings</a> tadalafil peptide
  21. what is clonidine
    what is clonidine 3 months ago
    how do i get hydroxychloroquine <a href="https://hydroxychloroquinex.com/#">what is clonidine</a> uso medical abbreviation
  22. malaraquin
    malaraquin 3 months ago
    plaquenil hydroxychloroquine sulfate <a href="https://hydroxychloroquinex.com/#">clorochina</a> malaria usmle
  23. cialis online
    cialis online 3 months ago
    tadalafil research <a href="https://elitadalafill.com/">cialis pills</a> tadalafil generic
  24. hydroxyquinoline
    hydroxyquinoline 3 months ago
    cloraquinn <a href="https://chloroquineorigin.com/#">plaquenil 10 mg</a> chloroguine
  25. tadalafil price walmart
    tadalafil price walmart 3 months ago
    tadalafil 30mg liquid <a href="https://tadalisxs.com/#">tadalafil goodrx</a> tadalis sx reviews
  26. abobiap
    abobiap 2 months ago
    <a href="http://fcialisj.com">generic cialis no prescription[/url]</a>
  27. www.pharmaceptica.com
    www.pharmaceptica.com 2 months ago
    icd 10 erectile https://www.pharmaceptica.com/
  28. pharmacepticacom
    pharmacepticacom 2 months ago
    anti-malaria drug chloroquine https://pharmaceptica.com/
  29. abobiap
    abobiap 2 months ago
    <a href="http://vscialisv.com/">comprare cialis online</a>
  30. micjwcb
    micjwcb 2 months ago
    Как получить список всех окон - The Delphi
    [url=http://www.gn1zymr77dm99m4cs4ru74k782x3106ys.org/]umicjwcb[/url]
    micjwcb http://www.gn1zymr77dm99m4cs4ru74k782x3106ys.org/
    <a href="http://www.gn1zymr77dm99m4cs4ru74k782x3106ys.org/">amicjwcb</a>
  31. abobiap
    abobiap a month ago
    <a href="https://cialiswwshop.com/">buy cialis cheap</a>
  32. side effects of hydroxychloroquine 200 mg
    side effects of hydroxychloroquine 200 mg a month ago
    chlorodine https://chloroquineorigin.com/# hydochloroquine
  33. abobiap
    abobiap a month ago
    <a href="https://cialiswwshop.com/">buy generic cialis</a>
  34. cialis online
    cialis online 20 days ago
    cialis tablets <a href="https://cialiswithdapoxetine.com/#">generic cialis</a>
  35. Robertkit
    Robertkit 12 hours ago
    Добротные изображения где прекрасно раскрывается [url=https://ddeva.info]порнография[/url] в современном исскустве.
Отменить.