Показать сообщение отдельно
  #5  
Старый 23.05.2017, 20:30
blaksoft blaksoft вне форума
Прохожий
 
Регистрация: 22.05.2017
Сообщения: 4
Версия Delphi: Delphi7,DelphXE
Репутация: 10
По умолчанию

вот полный код
Код:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls,WndInfo;

type
  TForm1 = class(TForm)
    lbWindows: TListBox;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
  function AddWindow(AHandle : THandle; ListBox : LPARAM) : BOOL; stdcall;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

function TForm1.AddWindow(AHandle: THandle; ListBox: LPARAM): BOOL;
var
  FWndInfo : TWndInfo;
  AText : String;
  PText : Array [0..1023] Of Char;
begin
  If (AHandle <> Application.Handle) And (AHandle <> Application.MainForm.Handle) And
     (IsWindowVisible(AHandle)) And (GetWindow(AHandle, GW_OWNER) = 0) And (IsWindow(AHandle))
    Then
      Begin
        FillChar(PText,Length(PText) * SizeOf(Char),#0);
        GetWindowText(AHandle,@PText,1023);
        AText := StrPas(PText);
        If (AText <> '') And (AText <> 'Program Manager') Then
          Begin
            FWndInfo := TWndInfo.Create(AHandle,AText);
            TListBox(ListBox).Items.AddObject(AText,FWndInfo);
          End;
      End;
  Result := TRUE;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
I : Integer;
begin
lbWindows.Items.BeginUpdate;
  Try
   //Clear
   For I := 0 To lbWindows.Items.Count-1 Do lbWindows.Items.Objects[i].Free;
    lbWindows.Items.Clear;

    // Get new list
   EnumWindows(@AddWindow,LPARAM(lbWindows));
    If lbWindows.Items.Count > 0 Then lbWindows.ItemIndex := 0;
    lbWindows.Sorted := FPreferences.SortOrder = soAlpha;
  Finally
    lbWindows.Items.EndUpdate;
  End;
end;
end.
к сожалению компилятор на другом компе поэтому точную ошибку сказать не могу
Ответить с цитированием