Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.29;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.028 c
11-1133217453
thaddy
2005-11-29 01:37
2006.10.29
wiki.


3-1157526169
worldmen
2006-09-06 11:02
2006.10.29
Select -обыкновенный (с like и upper)


2-1160906180
C@N
2006-10-15 13:56
2006.10.29
ScroolBars в Memo


9-1137827231
_Lucky_
2006-01-21 10:07
2006.10.29
Динамический список для объектов разного типа


1-1158304611
Ragazor
2006-09-15 11:16
2006.10.29
DLL with MDI...