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

Вниз

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

 
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 вся ветка

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

Наверх




Память: 0.51 MB
Время: 0.055 c
1-1080127303
Zilog
2004-03-24 14:21
2004.04.11
Расчет времени! Нужна помощь...


14-1079289142
Mox Fulder
2004-03-14 21:32
2004.04.11
А мне теперь есть, что делать...


14-1082025193
infom
2004-04-15 14:33
2004.04.11
Здание


3-1082055118
Серг
2004-04-15 22:51
2004.04.11
DragDrop в DBGride


6-1075646902
grifff
2004-02-01 17:48
2004.04.11
IdSNMP





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