Форум: "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.041 c