Форум: "WinAPI";
Текущий архив: 2003.12.26;
Скачать: [xml.tar.bz2];
Вниз
Поиск окна Найти похожие ветки
← →
Serhio (2003-10-31 19:24) [0]Поскажите плз, как можно найти окно, если известна только часть его заголовка?
← →
Игорь Шевченко (2003-10-31 19:36) [1]EnumWindows и Pos по заголовку :)
← →
Serhio (2003-10-31 20:16) [2]А как получить заголовок окна, дескриптор которого известен?
← →
DVM (2003-10-31 20:19) [3]GetWindowText()
← →
Игорь Шевченко (2003-10-31 20:22) [4]var
atext : array[0..255] of char;
GetWindowText(Hwnd, atext, SizeOf(atext));
if Pos("кусокзаголовка", atext) <> 0 then
нашли
← →
Serhio (2003-10-31 20:33) [5]Что-то ничего не получается, не находит.
← →
DVM (2003-10-31 20:35) [6]
> Что-то ничего не получается, не находит.
приведи полный код
← →
Serhio (2003-10-31 20:37) [7]unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function FindWindowsName(hWindow: hWnd): Bool;
var
sWTitle: array[0..255] of char;
begin
GetWindowText(hWindow, sWTitle, SizeOf(sWTitle));
if Pos("Opera", sWTitle) <> 0 then
begin
Application.MessageBox("Нашел!!! :)","",MB_OK);
result:=true;
exit;
end;
Application.MessageBox("Ничего не найдено :(","",MB_OK);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
enumWindows(@FindWindowsName, Longint(Self));
end;
end.
← →
Игорь Шевченко (2003-10-31 20:48) [8]function FindWindowsName(hWindow: hWnd): Bool;
var
sWTitle: array[0..255] of char;
begin
Result := true;
.....
Application.MessageBox("Нашел!!! :)","",MB_OK);
result:=false; //окончили перебор
← →
DVM (2003-10-31 20:49) [9]А у функции 2 параметра должно быть.
BOOL EnumWindows(
WNDENUMPROC lpEnumFunc, // указатель на функцию обратного вызова
LPARAM lParam // определяемое программой значение
);
BOOL CALLBACK EnumWindowsProc(
HWND hwnd, // дескриптор родительского окна
LPARAM lParam // определяемое программой значение
);
← →
ZrenBy (2003-10-31 20:50) [10]function EnumWindowsProc(hW:HWND;lP:LPARAM):Boolean;stdcall;
var S:String;
begin
SetLength(S,SendMessage(hW,WM_GETTEXTLENGTH,0,0)+1);
SetLength(S,SendMessage(hW,WM_GETTEXT,Length(S),LPARAM(S)));
TListBox(lP).Items.Add(Format("%8.8x | %s ", [hW,S]) );
Result := True;
end;
procedure Tf.Button2Click(Sender: TObject);
begin
ListBox1.Clear;
EnumWindows(@EnumWindowsProc,LPARAM(ListBox1));
end;
← →
Serhio (2003-10-31 20:57) [11]УРА!!! Заработало!!! Всем огромное спасибо, особенно ZrenBy
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.12.26;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.012 c