13. oktober 2002 - 21:18
#3
så det ik, sry, det fadede nærmest ned i bundlinien :D
13. oktober 2002 - 21:50
#4
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
PFindWindowStruct = ^TFindWindowStruct;
TFindWindowStruct = record
Caption : string;
ClassName : string;
WindowHandle : THandle;
end;
TForm1 = class(TForm)
ListBox1: TListBox;
Button1: TButton;
Label1: TLabel;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure EnumWindowsProc(hWindow : hWnd;
lParam : LongInt);
{$IFDEF Win32} stdcall; {$ELSE} ; export; {$ENDIF}
var
lpBuffer : PChar;
begin
GetMem(lpBuffer, 255);
try
if GetWindowText(hWindow, lpBuffer, 255) > 0 then
Form1.ListBox1.Items.Add(lpBuffer);
finally
FreeMem(lpBuffer, sizeof(lpBuffer^));
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
WindowInfo : TFindWindowStruct;
begin
EnumWindows(@EnumWindowsProc, LongInt(@WindowInfo));
end;
procedure TForm1.ListBox1Click(Sender: TObject);
var
pro : String;
luk : HWND;
begin
pro := ListBox1.Items.Strings[ListBox1.ItemIndex];
luk := FindWindow(nil, PChar(pro));
SendMessage(luk, WM_SYSCOMMAND,SC_CLOSE,0);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Listbox1.Clear;
end;
end.