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

Вниз

Как вызвать процедуру из чужой программы   Найти похожие ветки 

 
Max003   (2004-01-19 14:46) [0]

Как, зная имя процедуры, вызвать её из чужой программы. В чужой программе есть процедура Button1Click. Возможно ли вызвать её и как?


 
VMcL ©   (2004-01-19 15:12) [1]

В теории да, но практически дешевле "нажать" на кнопку программно.


 
YuRock ©   (2004-01-19 15:16) [2]

Нельзя. Как я понял - это метод класса, а следовательно эта процедура неэкспортируемая, так что по-имени ее найти невозможно.


 
NiaSoft   (2004-01-19 23:15) [3]

Методы есть, но они так сказать не очень прозрачние :). Можно например внедриться в чужой процесс/поток и от туда вызывать чего хочешь, если конечно знаешь чего хочешь(а именно адресс). Но это наверное из разряда хакерства, и вирусов :)


 
AKul ©   (2004-01-20 09:37) [4]


> NiaSoft   (19.01.04 23:15) [3]

Это больше из разряда фантастики ;-).


> Max003   (19.01.04 14:46)

Если тебе нужно эмулировать нажатие кнопки Button1, то пошли ей (ее хендлу) сообщение BM_CLICK.


 
Max003   (2004-01-20 20:01) [5]

ButtonClick я для примера взял. На самом деле ситуация сложнее. Просто эмитировать нажатие не получится. Это пункт меню. Его надо сначала сделать доступным (enabled=true) , а потом эмитировать нажатие. Со вторым проблем нет, а вот сделать доступным - проблема. Прочел, что есть такая процедура EnabledMenuItem. Попробывал - ничего. Если у кого есть работающий пример, помогите, пожалуйста.


 
panov ©   (2004-01-20 20:31) [6]

Проще программу купить будет...


 
MAxiMum   (2004-01-20 20:51) [7]

Возьми хендл от пункта меню или хотя бы всего меню.... от этого и отталкивайся...
Посмотри как работает Spy32 от Krichmar Kobi.

Удачи!


 
NiaSoft   (2004-01-20 20:53) [8]

> AKul
Да нет, даже примеры видел на каком то хакерском сайте. Правда объяснялось там весьма пространно и пример был не полным (отсутствовали некоторые процедуры, видно чтобы всякие неопытные хакеры не сделали чего нить :) )


 
sniknik ©   (2004-01-21 08:38) [9]

> Это пункт меню. Его надо сначала сделать доступным (enabled=true), а потом эмитировать нажатие.
интересно что это даст, в моих прогах к примеру неактинвы те пункты на которые нельзя нажимать... и не из вредности а действительно нельзя. ну к примеру две задачи работают с одними данными запускаются в потоках ... продолжать? если сделать активным то что я закрываю при их старте ни к чему хорошему это не приведет, скорее всего вылетит по AV. в лутшем случае неправильно посчитает (хотя это как раз худший случай :).
я бы мог конечно сделать по другому чтобы не вешалось при паралельном запуске, но в данном случае так удобнее задачи строго последовательны данные передавать из процесса в процесс не нужно... а на разных начинающих хакеров расчета нет... думаю и другие закрывают пункты по похожим причинам, а на хакеров всем плевать.


 
panov ©   (2004-01-21 09:32) [10]

>sniknik ©   (21.01.04 08:38) [9]

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


 
AKul ©   (2004-01-21 09:57) [11]


> NiaSoft   (20.01.04 20:53) [8]

Сделать вызов какой-то процедуры можно, даже без проблем (если знаешь ее адрес и имеешь доступ к адресному пространству процесса - а это можно сделать из специально написанной DLL), но вот работать это не всегда будет!
Представь, например, что вызываеся метод Button1Click формы которая еще не создана, и внутри этого метода происходит обращение к полям формы. И что тогда? - думаю ты меня понял.
Это можно делать в том случае, если есть возможность контролировать выполнение процесса...


> Max003

Если тебе нужно разрешить какой-то пункт меню, то покопайся в ресурсах, меню описываются там (если программист, конечно, не решил создавать его в рантайме - маловероятно).
Но на вряд ли разрешение пункта меню решит твою проблему - в Demo-версиях, обычно, все "ненужные" процедуры не вставляются в екзешник!


 
GrayFace ©   (2004-01-22 08:23) [12]

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


 
jack128 ©   (2004-01-22 10:27) [13]


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


> Его надо сначала сделать доступным (enabled=true) , а потом
> эмитировать нажатие. Со вторым проблем нет, а вот сделать
> доступным - проблема. Прочел, что есть такая процедура EnabledMenuItem.
А как ты узнал, что с нажатием у тебя проблем нету? Меню ведь дизеблено ;-)


 
GrayFace ©   (2004-01-23 18:18) [14]

>Проще программу купить будет...
Обычно программы не стоят требуемых за них денег.


 
GrayFace ©   (2004-01-23 18:28) [15]

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


 
GrayFace ©   (2004-01-24 13:35) [16]

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


 
Max003   (2004-01-24 14:19) [17]

Если у меня получится сделать этот пункт активным, то дальше все пойдет нормально. Это не демоверсия, а такая защита, чтобы в игре к следующему туру перейти. Как только выйгрываешь, он становится активным, а мне охота сделать его активным без выигрыша. А редактором ресурсов покапаться не получится. Программа сжата aspack"ом.


 
XenonXX ©   (2004-01-26 04:48) [18]

Дык распакуй!


 
Woodpecker ©   (2004-01-26 14:58) [19]

>>Max003  (24.01.04 14:19) [17]

Порнотетрис или что-то такое...


 
GrayFace ©   (2004-02-01 13:05) [20]

Удалено модератором
Примечание: Разборки с модератором почтой


 
GrayFace ©   (2004-02-03 13:10) [21]

>Разборки с модератором почтой
А как ее узнать?


 
panov ©   (2004-02-03 13:17) [22]

>GrayFace ©   (03.02.04 13:10) [21]
Конвертик справа вверху.


 
Slym ©   (2004-02-04 13:27) [23]

COM?!


 
sniknik ©   (2004-02-04 16:09) [24]

> COM?!
весело то как. :о))))) порнотетрис сделанный как COM сервер, сервер автоматизации .... чего? ;о) с встроенной внутрь себя же функцией кряка непройденного уровня. ;о))
надо подкинуть идею комунибудь на реализацию. ;)


 
GrayFace ©   (2004-02-04 16:11) [25]

Че такое COM?!
panov, т.е. только ты в этом месте модеришь?


 
slym99   (2004-02-04 16:25) [26]

Технология такая...
пример: Прога использует MS Word... печатает, свойства меняет всякие кнопочки нажимает.
Прогу в которой кнопку нажать надо заделываешь в COM с методом Click;
а в проге из которой надо нажать
v:=CoApp1.Create;
v.Click;



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

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.03 c
6-1075542616
Leech
2004-01-31 12:50
2004.04.11
Сокеты. Перенаправление соединения на другой ServerSocket...


4-1075899409
graY
2004-02-04 15:56
2004.04.11
Как програмно щелкнуть на кнопке типа TToolButoon ведь у ...


3-1079429812
-kiril
2004-03-16 12:36
2004.04.11
Новое поле в Interbase


11-1068747888
miek
2003-11-13 21:24
2004.04.11
Отличить KOL от VCL


9-1070877335
nexxiss
2003-12-08 12:55
2004.04.11
DirectX headers. компиляция