Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > узнать заголовок окна


Автор: mistrmax 23.7.2010, 23:09
всё что мне нужно отражено в заголовке темы smile 

Автор: Keeper89 24.7.2010, 00:45
Было уже где-то на форуме, вот вариант:
Код

type
  PProcessID = ^TProcessID;
  TProcessID = record
    PID : DWORD;
    Title : String[255];
  end;
 
function GetWindowNameFromPID(PID: DWORD): String;
var
  ProcessID : PProcessID;
begin
  GetMem(ProcessID,SizeOf(TProcessID));
  ProcessID^.PID := PID;
  If Not EnumWindows(@EnumProcess,Integer(Pointer(ProcessID))) Then
    begin
    If MessageDlg('Could not get hook to the process handles.' + #13#10 + 'Try Again?',mtConfirmation,[mbYes,mbNo],0) = mrYes Then
      begin
      GetWindowNameFromPID(PID);
    end;
  end;
end;
 
function EnumProcess(Handle: HWND; lParam: Integer): BOOL; stdcall;
var
  PID : Cardinal;
  ProcessID : TProcessID;
  Title : String;
begin
  If Handle = nil Then
    begin
    Result := False;
  end
  Else
    begin
    ProcessID := PProcessID(Pointer(lParam))^;
    GetWindowThreadProcessID(Handle,PID);
    If ProcessID.PID = lParam Then
      begin
      SetLength(Title,255);
      SetLength(Title,GetWindowText(Handle,PChar(Title),Length(Title)));
      If Title = '' Then
        begin
        Title := 'Empty';
      end;
      ProcessID.Title := Title;
    end;
    Result := True;
  end;
end;


Немного доработав код можно получить что-то приличное smile

http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_24147897.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)