Вниз
Скачать: CL | DM;

Последние буквы названия окна...   Найти похожие ветки 

← →
mox ©   (2003-07-23 19:27) [0]

Известны только 3 последние буквы названия окна...
Как можно через FindWindow узнать есть ли такое окно в данный момент?


← →
PVOzerski ©   (2003-07-23 20:09) [1]

Вот это выдаст Вам все заголовки окон (кроме Child-), которые удовлетворяют Вашим условиям. Эталон загоняете в Edit1, в Label1 читаете всё подошедшее. На предмет багов не вылизывал, да и без FinfWindow обошелся...


function handler(h:tHandle;param:pChar):longbool;stdcall;
var
s,p:shortstring;
begin
byte(s[0]):=GetWindowText(h,@s[1],255);
p:=string(param);
if(p[0]<=s[0])and(pos(p,s)=length(s)-length(p)+1) then
Form1.Label1.Caption:=Form1.Label1.Caption+" "+s;
result:=true;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption:="";
EnumWindows(@handler,longint(pChar(Edit1.text)));
end;



← →
Song ©   (2003-07-23 20:15) [2]

А через FindWindow и никак.


← →
nikus ©   (2003-07-23 20:56) [3]

Я даже догадываюсь, какие это буквы =)


← →
AbrosimovA ©   (2003-07-24 08:29) [4]

var Run: boolean;
Capt: string;

function EnumProc (Wd: HWnd; Param: LongInt): Boolean; stdcall;
Var
Nm: Array[0..255] of Char; // буфер для имени
Len: integer;
Begin
GetWindowText(Wd,Nm,255); // считываем текст заголовка окна
Len:=Length(String(Nm));
Capt:=Copy(String(Nm),Len-2,3);
If Capt="123" then begin //свои 3 последних буквы
Run:=true; //окно найдено
EnumProc:=false; //не продолжать искать окна…
Capt:=String(Nm);
end
else EnumProc:=true; //продолжать искать окна…
end;

procedure TMainForm.FormCreate(Sender: TObject);
begin
Run:=false;
EnumWindows (@EnumProc, 0); // начать поиск
if Run then
MessageDlg("Программа (заголовок "+Capt+") запущена !!!",
( "Программа не запущена !!!", mtInformation,[mbOk], 0)
var Run: boolean;
Capt: string;

function EnumProc (Wd: HWnd; Param: LongInt): Boolean; stdcall;
Var
Nm: Array[0..255] of Char; // буфер для имени
Len: integer;
Begin
GetWindowText(Wd,Nm,255); // считываем текст заголовка окна
Len:=Length(String(Nm));
Capt:=Copy(String(Nm),Len-2,3);
If Capt="123" then begin //свои 3 последних буквы
Run:=true; //окно найдено
EnumProc:=false; //не продолжать искать окна…
Capt:=String(Nm);
end
else EnumProc:=true; //продолжать искать окна…
end;

procedure TMainForm.FormCreate(Sender: TObject);
begin
Run:=false;
EnumWindows (@EnumProc, 0); // начать поиск
if Run then
MessageDlg("Программа (заголовок "+Capt+") запущена !!!",
mtInformation,[mbOk], 0)
else
MessageDlg("Программа не запущена !!!", mtInformation,[mbOk], 0)
end;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.013 c
1-18476
Pohil
2003-09-24 11:43
2003.10.06
Как мне отобразить данные, полученные от ReadBinaryData(Registry)


6-18518
St!ff
2003-08-04 03:59
2003.10.06
Учет трафика


14-18582
Бразилец
2003-09-17 19:00
2003.10.06
Динамо Киев - Локо, ваши прогнозы, господа товарищи?


7-18646
mox
2003-07-23 19:27
2003.10.06
Последние буквы названия окна...


6-18497
Vulko
2003-08-09 22:35
2003.10.06
TWebBrowser




   Наверх