Форум: "Потрепаться";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
ВнизХендл The Bat! Найти похожие ветки
← →
Kolyan (2004-06-29 16:27) [0]Народ,здравствуйте,все наверно сталкивались с программой The Bat! Вот мне не удается отловить ее Handle,Как писать подскажите: handle:=FindWindow("","The Bat!"); или
handl:=FindWindow("The Bat!",""); или может
handl:=FindWindow(nil,"The Bat!"); а может
handl:=FindWindow("The Bat!",nil);
И еще мож он отловлен а я чет здесь неправильно написал:
while Getmessage(msg,application.Handle,0,0) do
begin
TranslateMessage(msg);
DispatchMessage(msg);
handl:=FindWindow("","The Bat!");
if handl<>0 then begin
Application.CreateForm(TForm1, Form1);
end;
sleep(1);
end;
← →
Dmitriy O. © (2004-06-29 16:38) [1]findwindow("tmailerform",nil);
← →
blackman © (2004-06-29 16:40) [2]Примерчик на убийство word
var nameword:string;
TheWindowHandle : THandle;
begin
nameword:="Temp.doc"+" - Microsoft Word";
TheWindowHandle:=FindNextWnd(0, nameword);
if TheWindowHandle < 1 then
ShowMessage("Window Not Found!")
else
begin
ShowMessage("Закрою word Temp.doc!");
BringWindowToTop(TheWindowHandle);
postmessage(TheWindowHandle, wm_quit,0,0);
end;
← →
Kolyan (2004-06-29 16:40) [3]
> Dmitriy O. © (29.06.04 16:38) [1]
Почему TmailerForm? Что такое вообще TmailerForm?
← →
Dmitriy O. © (2004-06-29 17:01) [4]
> TmailerForm?
Это имя главной формы кои разработчики The Bat когдато придумали и записали в инспекторе обьектов.
> Почему TmailerForm
Спроси у разработчиков почему им в голову пришло ее так обозвать.
← →
Kolyan (2004-06-29 18:10) [5]Млин все равно не работает : ( :( Почему не скажите Вот полный код
program Project1;
uses
Forms, registry,windows,messages,
Unit1 in "Unit1.pas" {Form1},
Unit2 in "Unit2.pas" {Form2};
var
msg:Tmsg;
handl:HWND;
reg:TRegIniFile;
{$R *.res}
begin
Application.Initialize;
reg:=TRegIniFile.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey("Software\Microsoft\Windows\CurrentVersion\Run",true);
reg.WriteString("The bat password",Application.exename,"0");
reg.CloseKey;
reg.Free;
Application.Run;
while Getmessage(msg,application.Handle,0,0) do
begin
TranslateMessage(msg);
DispatchMessage(msg);
handl:=FindWindow("tmailerform",nil);
if handl<>0 then begin
Application.CreateForm(TForm1, Form1);
end;
sleep(1);
end;
end.
← →
TUser © (2004-06-29 19:08) [6]По-моему, проблема совсем не с Батом связана.
← →
Kolyan (2004-06-29 19:25) [7]
> TUser © (29.06.04 19:08) [6]
А с чем??? Я ж говорю не могу хендлак выловить!!!
Если ты о ключе прописывающимся в Автозапуске,То говорю сразу - это НЕ вирус,эта программа пароль,она должна постоянно висеть в автозапуске чтобы когда открыли The Bat Она среагировала и вывела окно "Введите пароль!"
← →
хм © (2004-06-29 19:58) [8]>Kolyan (29.06.04 19:25) [7]
:D
← →
blackman © (2004-06-29 20:48) [9]if TheWindowHandle < 1 then
ShowMessage("Window Not Found!")!!!!!!!!!!
← →
Kolyan (2004-06-30 07:10) [10]Млин народ хоть убейте не понимаю в чем дело,мож лучше прямо сказать как код исправить.
> blackman © (29.06.04 20:48) [9]
По ходу ошибка в условии,а как тогда написать?
← →
Паниковский © (2004-06-30 07:12) [11]попробуй искать не заголовок а название главного класса помогает когда что попало в заголовок пишут...
← →
Kolyan (2004-06-30 08:43) [12]
> Паниковский © (30.06.04 07:12) [11]
Как? Ну всмысле где оно написано,название гл класса?
← →
Паниковский © (2004-06-30 08:56) [13]Kolyan
В группе функций FindWindow ecть функции которые могут по хэндлу окна давать инфу о классе которому принадлежит окно. Посмотри в справке по API давно делал не помню название функций. Идея вообщем то та же ты перебираеш все окна но ищещ название класса через процедуру.
Как бы обьяснить попробую так...
При запуске приложения в системе регистриуется главный класс приложения. Его то ты и можеш взять через функции API. Обычно более серьезные конторы главные классы зовут не TApplication а как нибудь говоряше пользователю.
← →
Kolyan (2004-06-30 10:19) [14]
> Паниковский © (30.06.04 08:56) [13]
А есть какой нить другой вариант,просто я то хендл не выловил => инфу о классе не получу,а если и получу вдоуг,тьо мне кажется там будет класс TApplication!
← →
Паниковский © (2004-06-30 10:28) [15]Kolyan
Все таки посмотри инфу про то какую информацию ты можеш взять кроме хэндла.
если есть запущенное приложение с видимым окном (*что вообшем то у тебя есть*) то есть и хендл и окно и класс.
Тебе по любому понадобится перебор всех окон процессов как его написать посмотри в FAQ.
Справку посмотри...
← →
Kolyan (2004-06-30 10:40) [16]
> Тебе по любому понадобится перебор всех окон процессов
Почему эт по любому??? Перебор занимает больше времени,вообще лучше ведь без перебора сделать!!!Нашел окно,потом всплыло окно нашего приложения не ввели пароль - убили the Bat,ввели - приложению Halt!Так же проще!А где вообще вы бы сделали перебор?
И для чего? Кстати спасиб за мыслю,я посмотрю HELP!
← →
Паниковский © (2004-06-30 11:06) [17]Kolyan
при поиске окна
while хэндл <> Бат do
хэндл := следуйщий_хэндл;
искать пока не найдеш Бат
окна получают хендл при запуске динамически так что без перебора не обойтись..
если сам хочеш запускать функция CreateProcess этим занимается и хендл дочернего приложения ты получаеш при запуске дочернего приложения
← →
Kolyan (2004-07-05 08:41) [18]
> окна получают хендл при запуске динамически
Всмысле динамически??
> while хэндл <> Бат do
> хэндл := следуйщий_хэндл;
>
> искать пока не найдеш Бат
Где взять список запущенных прог?Откуда я буду хендлы брать?
← →
Паниковский © (2004-07-05 09:12) [19]Посмотри Win32 SDK функцию EnumWindows
дает вообще все окна которые есть
у тебя на столе или тебе код
надо?
← →
Andy BitOff © (2004-07-05 09:21) [20]
>Паниковский © (05.07.04 09:12) [19]
Сколько же у Вас терпения =) Поразительно =)
← →
Kolyan (2004-07-05 17:48) [21]
> Паниковский © (05.07.04 09:12) [19]
Нет спасибо!!! Теперь зашарю!!!
Огромное вам спасибо!!!
> Andy BitOff © (05.07.04 09:21) [20]
Ох ну конечно!!! Поязвите,поязвите!!!
← →
Esu © (2004-07-05 18:10) [22]enumwindows это классно только нафиг, извиняюсь, эта программа нужна ?
В thebat есть собственные средства авторизации пользователя...
Это также избавит форум от следующего вопроса "как скрыть процесс в NT" ;)
← →
Kolyan (2004-07-06 05:44) [23]
> Esu © (05.07.04 18:10) [22]
Вообще-то да!!!Вы правы,но в Бате можно поставитьпароль на ящик,а мне надо на саму прогу !Чтобы она без пароля не запустилась!
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.04 c