Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.51 MB
Время: 0.033 c
9-1081868812
Werwolf
2004-04-13 19:06
2004.07.25
Люди вопрос


4-1087239857
Xtz
2004-06-14 23:04
2004.07.25
Окно теряет свой фокус


14-1088757616
Cosinus
2004-07-02 12:40
2004.07.25
Склероз - болезнь молодежи!


14-1088686545
WondeRu
2004-07-01 16:55
2004.07.25
Годовщина!


1-1089092804
Baloo
2004-07-06 09:46
2004.07.25
Копировать на расшаренный ресурс





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский