Mega Code Archive

 
Categories / Delphi / System
 

Obtain the text of a specified windows title bar

Title: obtain the text of a specified window's title bar? // This example will show you a faster method how you can obtain // the text of the specified window's title bar under Windows NT/2000 systems. // (c)1999 Ashot Oganesyan K, SmartLine, Inc // mailto:ashot@aha.ru, http://www.protect-me.com, http://www.codepile.com // The function copies the text of the specified window's title bar // (if it has one) into a buffer. The InternalGetWindowText function is // much faster than the documented GetWindowText because it uses INT 2E interrupt // NT-Specific! // Here is the prototype for InternalGetWindowText: (* InternalGetWindowText( hWnd: HWND; {a handle to a window or control with text} lpString: PChar; {a pointer to a buffer to receive the string (UNICODE!!!)} nMaxCount: Integer {the maximum number of characters to copy} ): Integer; {returns the length of the copied string} *) function NT_InternalGetWindowText(Wnd: HWND): string; type TInternalGetWindowText = function(Wnd: HWND; lpString: PWideChar; nMaxCount: Integer): Integer; stdcall; var hUserDll: THandle; InternalGetWindowText: TInternalGetWindowText; lpString: array[0..MAX_PATH] of WideChar; //Buffer for window caption oemStr: PChar; begin Result := ''; hUserDll := GetModuleHandle('user32.dll'); if (hUserDll 0) then begin @InternalGetWindowText := GetProcAddress(hUserDll, 'InternalGetWindowText'); if Assigned(InternalGetWindowText) then begin InternalGetWindowText(Wnd, lpString, SizeOf(lpString)); Result := string(lpString); end; end; end; procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage(NT_InternalGetWindowText(Form1.Handle)); end;