Форум: "Начинающим";
Текущий архив: 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