Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.10.29;
Скачать: [xml.tar.bz2];

Вниз

Работа с чужим приложением   Найти похожие ветки 

 
XeRoN   (2006-10-09 00:13) [0]

Добрый день (точнее скорее всего ночи) всезнающий ALL! :)

У меня к тебе такой вопрос:
Имеется программа (Чужая) в ней эдит. Если в эдите 12 цифр то происходит определенное событие.
Вопрос такой: Как сделать из моей проги так, чтобы это событие не происходило?
Желательно пример


 
ProgRAMmer Dimonych ©   (2006-10-09 00:28) [1]

Только взлом, IMHO. Изменить значение TEdit"а можно, но чтобы отключить событие - это уж наверное никак.


 
Eraser ©   (2006-10-09 00:31) [2]

> [1] ProgRAMmer Dimonych ©   (09.10.06 00:28)

ну почему же никак.. перехватывать глобальным хуком обращение именно к этому едиту, а вот как узнать, что вот этот конкретный едит именно тот, который нужен - другой вопрос.

> [0] XeRoN   (09.10.06 00:13)

еще, как вариант, поизучай теорию "кряка" программ :)


 
XeRoN   (2006-10-09 02:08) [3]

>Только взлом, IMHO. Изменить значение TEdit"а можно, но чтобы отключить >событие - это уж наверное никак

Взлом непоможет... Суть в том, что нужно чтобы моя программа сделала это во время запуска "чужой" проги т.е. нужен хук

>а вот как узнать, что вот этот конкретный едит именно тот, который нужен - >другой вопрос.

Найти нэндл этого эдита для меня не проблема...
Но вот как перехватить обращение к нему я незнаю =(

Можно пожайлуста пример хука события onChange конкретного эдита зная его хэндл


 
Elen ©   (2006-10-09 08:46) [4]


> XeRoN

Здарвствуй Уважаемый кидаю тебе примерчик хука из дллки. Ты говориш что знаеш его хендл тогда попробуй так :
library hookKey;
uses
 Windows,crtfox, messages,
 SysUtils;

var CurrentHook: HHook;  frm:Thandle;
   KeyArray: array[0..19] of char;

function GlobalKeyBoardHook(code: integer; wParam: integer; lParam:integer): longword; stdcall;
var
i:integer; t:^tagMSG;p:pchar;
begin

p:="qwerty";
// Жирным это хендель едита
// проверено на Total Commandere
  if  GetFocus=$000101AA then begin
  SendMessage($000101AA,WM_SETTEXT,0, integer(LPCTSTR("www")));
  end;

 if code< 0 then
  begin
    result:=CallNextHookEx(CurrentHook,code,wParam,lparam);
    Exit;
  end;

   CallNextHookEx(CurrentHook,code,wParam,lparam);
   result:=0;
end;
procedure Hook(f:thandle);
begin
frm:=f;
 CurrentHook:=SetWindowsHookEx(WH_cbt, @GlobalKeyBoardHook,HInstance, 0);

end;
procedure unhook;
begin
 UnhookWindowshookEx(CurrentHook);
end;

exports
Hook, unhook;
begin
end.



Ну и соответственно

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs;

type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
   procedure FormClose(Sender: TObject; var Action: TCloseAction);
 private
   { Private declarations }
 public
   { Public declarations }
 end;
 procedure Hook(f:thandle); external "hookkey.dll";
 procedure unhook; external "hookkey.dll";
var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
hook(Form1.Handle);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
unhook;
end;

end.


Удачи!


 
XeRoN   (2006-10-09 15:29) [5]

К сожелению не компилируется... говорит:

[Warning] Library1.dpr(6): Unit "Borland.Vcl.Windows" is specific to a platform
[Fatal Error] Library1.dpr(6): File not found: "crtfox.dcuil"

Может можно решить задачу по другому...
В общем есть прога, в ней эдит. Если количество цифр в эдите 12 то вылезает форма... Если цифр <12 или  >12 то ничего не происходит... Как сделать так чтобы эта форма не вылезала... Может быть эдиту можно послать какое нибудь сообщение которое будет его включать/выключать.


 
Elen ©   (2006-10-09 15:51) [6]


> XeRoN

Извини Ошибочка. crtfox заремь...


 
Ketmar ©   (2006-10-09 15:53) [7]

Удалено модератором


 
Elen ©   (2006-10-09 15:54) [8]


>  Если количество цифр в эдите 12 то вылезает форма

Для этого тебе нужно рулить wm_gettext. Он вернет строку в эдите а далее анализируй сколько цыфр,букв или чего еще. А в примере заремь crtfox - это мне по ошибке свой модуль втюхать удалось не подумавши


 
Elen ©   (2006-10-09 15:55) [9]

Удалено модератором


 
Ketmar ©   (2006-10-09 15:58) [10]

>[9] Elen(c) 9-Oct-2006, 15:55
>Чего там кривучим - ведь работает!!!
угу. щаз. это не код, это глюквище. за такое даже пожизненый эцих с гвоздями -- очень мягко. расстрел без права апелляции.


 
Elen ©   (2006-10-09 15:59) [11]

Удалено модератором


 
Eraser ©   (2006-10-09 16:03) [12]

> [4] Elen ©   (09.10.06 08:46)


> if  GetFocus=$000101AA then begin

ужосс.. и такое работает?

странно что система не рухнула сразу же с bsod от увиденного :))


 
Elen ©   (2006-10-09 16:06) [13]


> Eraser

Чего ей падать? хендл то настоящий. Ну ладно... Вместо помидоров лучше бы сами подсказали с высоты своего полета. Молчать все умеют


 
Ketmar ©   (2006-10-09 16:09) [14]

>[13] Elen(c) 9-Oct-2006, 16:06
>сами подсказали с высоты своего полета.
и не подумаю. данная тема на форуме обсуждается с завидной регулярностью. (я уж не говорю о статьях, которые тоже упоминал). если кому-то лень искать -- согласен поискать я. за большие WMZ.


 
medved_68 ©   (2006-10-09 16:10) [15]


> угу. щаз. это не код, это глюквище. за такое даже пожизненый
> эцих с гвоздями -- очень мягко. расстрел без права апелляции.
>

Ketmar, уважаемый, представьте пожалуйста свой, который был бы более достойный и не заслуживал вышесказанного для автора!!!! :))) "Дуть пузыри" может любой из нас, а реально помочь???
Elen спасибо за код!!! Немного помогло :)))


 
Elen ©   (2006-10-09 16:11) [16]


> medved_68

Незачто. Я ж не спорю что код сыроват - но на мысли наводит


 
Ketmar ©   (2006-10-09 16:13) [17]

>[15] medved_68(c) 9-Oct-2006, 16:10
>Ketmar, уважаемый, представьте пожалуйста свой,
медитируем на [14]. а чьи-либо сомнения в моей компетенции меня давно уже не волнуют.
тем более, я вообще почти никогда не даю кода. по причинам, которые на форуме озвучивал неоднократно.


 
medved_68 ©   (2006-10-09 16:14) [18]


> Я ж не спорю что код сыроват - но на мысли наводит

:))) За основу вполне сойдет, если конечно мысли есть :))))


 
MsGuns ©   (2006-10-09 17:43) [19]

Согласен к Кетмарем полностью: никогда нельзя давать человеку потенциально опасную технологию (и даже намек на нее), не будучи уверенным в его конечных целях.


 
Ketmar ©   (2006-10-09 18:05) [20]

>[19] MsGuns(c) 9-Oct-2006, 17:43
>никогда нельзя давать человеку потенциально опасную технологию
так, как здесь дадено -- пусть. всё равно работать толком не будет. %-)


 
XeRoN   (2006-10-09 22:10) [21]

Удалено модератором


 
Ketmar ©   (2006-10-09 22:18) [22]

Удалено модератором


 
XeRoN   (2006-10-09 22:54) [23]

Модераторы не спят)))

Может можно реализовать как то по проще...

Если в проге ВПЕРВЫЙ раз ввели 12 цифр то тогда эта форма не вылазит...
Может быть можно как то заставит прогу думать что цифры в эдит вводят впервый раз?) Ну типа эдит только создали =)


 
XeRoN   (2006-10-12 01:34) [24]

Мастера, неужели никто не может помочь?


 
Германн ©   (2006-10-12 01:52) [25]


> XeRoN   (12.10.06 01:34) [24]
>
> Мастера, неужели никто не может помочь?
>

Мастера могут, но, имхо не горят желанием, поскольку смутны твои мотивы. Не любят здешние мастера хакерство и кулхацкерство.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.10.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.094 c
11-1136877665
BaryVetaL
2006-01-10 10:21
2006.10.29
Как преобразовать ICO которая находится в потоке в PBitmap?


2-1161007194
dim2001
2006-10-16 17:59
2006.10.29
stringgrid фокус ввода


2-1160408486
лёха
2006-10-09 19:41
2006.10.29
реестр в виндовс


8-1143449543
kmi
2006-03-27 12:52
2006.10.29
Сохранение TBitMap в формате JPEG


3-1157437387
Sansy
2006-09-05 10:23
2006.10.29
таблица не существует?





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