Главная страница
    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.46 MB
Время: 0.007 c
3-18240
MakNik
2003-09-17 15:14
2003.10.06
резервное копирование и восстановление базы MSSQL


1-18444
vixic
2003-09-24 15:36
2003.10.06
ActiveX


6-18521
Lizard
2003-08-07 10:06
2003.10.06
Как сервером на удал-м. компе, передать инфу о файлах клиенту ?


1-18312
Abikos
2003-09-23 20:09
2003.10.06
функция обратная StrToHex


3-18250
Delphix
2003-09-16 09:27
2003.10.06
П-омогите с правильным вводом данных





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский