Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.06;
Скачать: 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 вся ветка

Текущий архив: 2003.10.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
3-18236
Vlad2
2003-09-16 20:24
2003.10.06
Как продолжить работу с БД после искючения BDE?


9-18209
MeF88
2003-03-26 12:41
2003.10.06
Звездный 3д фон...


1-18305
dima_shapkin
2003-09-23 11:19
2003.10.06
Такой хитрый грид


1-18295
Niobe
2003-09-24 10:27
2003.10.06
Уважаемые мастера, не подскажете как избавиться отVCL60.bpl & RTL


1-18316
sashcan
2003-09-23 20:55
2003.10.06
Получение установленных программ в винде