김현승 님이 쓰신 글 :
: 안녕하세요~~
: 빗방울이 떨어지는 주말이네요~
:
: 질문 드리겠습니다.
: 작업관리자에서 응용 프로그램 목록이 나오는것 처럼 listbox에 프로그램 목록을 뽑아내고 싶습니다.
: 예전에 언젠가 했었는데 기억이 나질 않네요~~
:
: 혹시 아시는 분들~~주말이지만~~답변 부탁드립니다.
function GetTitle(WinHandle: HWND): String;
var
TitleLn : integer;
begin
Result := '';
TitleLn := GetWindowTextLength(WinHandle);
if TitleLn > 0 then
begin
// GetWindowText()가 문자열의 맨 끝에 null 문자를 추가하므로 1증가 시킨다
inc(TitleLn);
SetLength(Result, TitleLn);
// 명시한 윈도우 핸들의 title bar를 읽어온다
GetWindowText(WinHandle, PChar(Result), TitleLn);
end;
end;
// EnumWindows 를 위한 Callback function
function enumcall(awin, lparam: longint): Boolean; stdcall;
var
buffer: String;
begin
buffer := GetTitle(awin);
if buffer<>'' then
TListBox(lparam).Items.Add(buffer);
Result := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
EnumWindows(@enumcall, Integer(ListBox1));
end;
|