Форум: "Начинающим";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];
ВнизGetFocus Найти похожие ветки
← →
Farel © (2007-07-12 20:28) [0]Всем привет!
У меня программа получает Handle активного окна.
Подскажите пожалуйста как по полученному Handle можно считать из объекта текст, получить Caption активного окна.
← →
Юрий Зотов © (2007-07-12 20:37) [1]WM_GETTEXT
← →
Farel © (2007-07-12 20:42) [2]А с примерчиком не поможете?
← →
Farel © (2007-07-12 21:00) [3]С помощью WM_GETTEXT я получаю значение типа integer, вот мой кусочек кода программы. Что-то не так? Подскажите.
type
TForm1 = class(TForm)
Timer1: TTimer;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject);
var
dwTargetOwner :DWORD;
dwThreadID :DWORD;//указатель на текущий процесс
Result:longbool;
{ProcessHandle : THandle;
TheWindow : HWND;
Classname,WindowTitle : string;
ProcessID: Integer;}
dc:hdc;
begin
{В первой метке отображается Handle активного окна}
Label1.Caption:=IntToStr(GetForegroundWindow);
dwTargetOwner := GetWindowThreadProcessId(GetForegroundWindow,nil);
dwThreadID := GetCurrentThreadId();//указатель на текущий процесс
if (dwTargetOwner <>dwThreadID) then // если не один и тот же процесс
Result := AttachThreadInput(dwThreadID, dwTargetOwner, TRUE);
{отображается Handle объекта "в фокусе" в активном окне}
Label2.Caption:=IntToStr(GetFocus);
Label4.Caption :=inttostr(WM_GETTEXT);//~~~
dc := GetDC(GetFocus);
Rectangle (dc, 10, 10, 110, 110);
ReleaseDC (Handle, dc);
DeleteDC (DC);
if (Result) then
AttachThreadInput(dwThreadID, dwTargetOwner, FALSE);//отключение
end;
end.
← →
oxffff © (2007-07-12 21:11) [4]WM_GETTEXT
This message is sent by an application to copy the text that corresponds to a window into a buffer provided by the caller.
WM_GETTEXT wParam = (WPARAM) cchTextMax;
lParam = (LPARAM) lpszText;
Parameters
cchTextMax
Specifies the maximum number of characters to be copied, including the terminating null character.
lpszText Long pointer to the buffer that is to receive the text.
и он в LPARAM
← →
oxffff © (2007-07-12 21:19) [5]var a:array[1..100] of char;
begin
SendMessage(handle,WM_GETTEXT,sizeof(a),DWORD(@a));
showmessage(pchar(@a));
← →
Zagaevskiy © (2007-07-13 10:16) [6]А почему не GetWindowText?
← →
oxffff © (2007-07-13 10:54) [7]
> Zagaevskiy © (13.07.07 10:16) [6]
> А почему не GetWindowText?
Посмотри Remarks
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.046 c