dcsimg
Login | Register   
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


Tip of the Day
Language: Pascal
Expertise: Beginner
Jun 15, 1998

WEBINAR:

On-Demand


Getting Application List

Question:
How can I get a list of currently running applications and, more importantly, handles to their windows?

Answer:
For that you have to use the Windows API call, EnumWindows. This uses a user-defined callback function that performs some actions as each window is found. Below is some code that will load a list box of all window titles.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ListBox1: TListBox;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

function EnumWinProc(Wnd : HWND; frm : TForm1) : Boolean; Export; {$IFDEF Win32}StdCall;{$ENDIF}
var
  WinText : Array[0..255] of Char;
begin
  GetWindowText(Wnd, WinText, 255);
  Result := True;
  if (StrPas(WinText) <> '') then
  frm.ListBox1.Items.Add(StrPas(WinText));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  EnumWindows(@EnumWinProc, LongInt(Self));
end;

end.

Notice that the second parameter of EnumWindows passes the form's handle to the EnumWinProc callback. This enables us to load the list box.

Also, the declaration for EnumWinProc has a compiler directive. For Win32, you need to include the stdcall directive. It's not necessary for Win16.

DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date