Форум: "Система";
Текущий архив: 2003.10.06;
Скачать: [xml.tar.bz2];
ВнизПоследние буквы названия окна... Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.01 c