
20.08.2009, 12:05
|
|
Познающий
Регистрация: 28.01.2009
Сообщений: 90
Провел на форуме: 432613
Репутация:
80
|
|
Переписал функцию, проверил работает.
Код:
function GetStatusTextEx(PanelIndex: cardinal): string;
function GetWindowTextEx(Wnd: THandle): string;
var
__Text: array [0..$FFF] of Char;
s: string;
begin
Result:='';
if Wnd <> 0 then begin
SendMessage(Wnd, WM_GETTEXT, $FFF, Longint(@__Text));
Result := StrPas(__Text);
end;
end;
const PANEL_CLASS = 'TabWindowClass';
var wnd, nWnd, status: cardinal;
buf: array [0..MAX_PATH-1] of char;
num: cardinal;
begin
Result:='';
wnd:=FindWindow('IEFrame', nil);
nWnd:=GetWindow(Wnd, GW_CHILD); num:=0;
{Перечисляем детей...}
while (nWnd<>0) do begin
nWnd:=GetNextWindow(nWnd, GW_HWNDNEXT);
if (nWnd=0) then break;
GetClassName(nWnd, buf, SizeOf(buf));
if buf = PANEL_CLASS then begin
status:=FindWindowEx(nWnd, 0, 'msctls_statusbar32', nil);
if num = PanelIndex then Result:=GetWindowTextEx(status);
inc(num);
end;
end;
end;
изпользовать
Label1.Caption:=GetStatusTextEx(1);
Последний раз редактировалось flacs; 20.08.2009 в 12:13..
|
|
|