MSHService
شنبه 22 فروردین 1388, 12:37 عصر
سلام
ميخوام وقتي با موس روي يه بنجره كليك ميكنم برنامه pid اون پنجره رو بهم بده!
با كد هاي زير ليست تمام پنجره ها رو بدست ميارم اما مي خوام بدونم كدوم پنجره ها مربوط به Explorer هستند و كدوما مربوط به پروسز هاي ديگه!
//----------------------------------------------------------------------
function EnumWindowsProc1 (Wnd: HWND; List: TStrings): BOOL; stdcall;
var
caption: array [0..256] of Char;
begin
Result := True;
if GetWindowText (Wnd, Caption, SizeOf(Caption)-1) <> 0 then
begin
if IsWindowVisible(wnd) then
begin
List.AddObject( caption, TObject( Wnd ));
end;
end;
end;
function EnumWindowsProc2 (wnd: HWND; List: TStrings) : boolean ;stdcall;
var Caption: array[0..256] of Char;
begin
if GetWindowText (wnd, Caption, SizeOf(Caption)-1) <> 0 then
begin
if not IsWindowVisible(wnd) then
List.AddObject( caption, TObject( Wnd ));
end;
Result :=True;
end;
//---------------------------------------
Function TForm1.GetProcessList(Visible:Boolean):TStringList ;
begin
Result:=TStringList.Create;
if not Visible then
EnumWindows(@EnumWindowsProc1, Integer(result))
else
EnumWindows(@EnumWindowsProc2, Integer(result));
end;
//****************************
با تشكر .
ميخوام وقتي با موس روي يه بنجره كليك ميكنم برنامه pid اون پنجره رو بهم بده!
با كد هاي زير ليست تمام پنجره ها رو بدست ميارم اما مي خوام بدونم كدوم پنجره ها مربوط به Explorer هستند و كدوما مربوط به پروسز هاي ديگه!
//----------------------------------------------------------------------
function EnumWindowsProc1 (Wnd: HWND; List: TStrings): BOOL; stdcall;
var
caption: array [0..256] of Char;
begin
Result := True;
if GetWindowText (Wnd, Caption, SizeOf(Caption)-1) <> 0 then
begin
if IsWindowVisible(wnd) then
begin
List.AddObject( caption, TObject( Wnd ));
end;
end;
end;
function EnumWindowsProc2 (wnd: HWND; List: TStrings) : boolean ;stdcall;
var Caption: array[0..256] of Char;
begin
if GetWindowText (wnd, Caption, SizeOf(Caption)-1) <> 0 then
begin
if not IsWindowVisible(wnd) then
List.AddObject( caption, TObject( Wnd ));
end;
Result :=True;
end;
//---------------------------------------
Function TForm1.GetProcessList(Visible:Boolean):TStringList ;
begin
Result:=TStringList.Create;
if not Visible then
EnumWindows(@EnumWindowsProc1, Integer(result))
else
EnumWindows(@EnumWindowsProc2, Integer(result));
end;
//****************************
با تشكر .