Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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.007 c
6-18506
ilka
2003-08-08 13:16
2003.10.06
Проблема с Socket


1-18299
Mim
2003-09-24 09:35
2003.10.06
:)


6-18532
spogi
2003-08-11 02:48
2003.10.06
Клиентский десктоп на сервере...


6-18522
Lizard
2003-08-07 09:57
2003.10.06
Как подключить диски удаленного компа ?


4-18679
Yurique
2003-07-31 15:54
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский