Форум: "WinAPI";
Текущий архив: 2002.06.17;
Скачать: [xml.tar.bz2];
ВнизСоздать свою кнопку на Найти похожие ветки
← →
LeSS (2002-04-04 15:42) [0]Уважаемые Мастера. Помоготе пожалуйта решить вопрос:
Нужно создать, к примеру, TButton на "чужом" окне (другого приложения).. Моих знаний пока хватает только на нахождения дискриптора этого окна, управлять ее своиствами типа Visible, и посылать на него типа WM_CLOSE. А вот как кнопку свою на нем поместить? Причем, хотелось бы, чтобы эту кнопку я смог сварганить во время design time визуально, а также чтобы она "умела работать" - у нее были onclick и т.д. и т.п.
Зарание, спасибо...
← →
Song (2002-04-04 15:51) [1]А саму процедуру onClick тоже хотите в чужое приложение забабахать?
CreateWindow
CreateWindowEx
← →
PVOzerski (2002-04-04 16:45) [2]>А саму процедуру onClick тоже хотите в чужое приложение забабахать?
IMHO, можно и это, если аккуратно. Не пробовал, правда, но, скорее всего,
удачное сочетание GetWindowLong, SetWindowLong и, может быть, CreateRemoteThread
должно бы позволить сотворить и такое.
← →
PVOzerski (2002-04-04 16:50) [3]Дополняю мысль: я, на самом деле, в стандартный SaveDialog (но своего приложения, так что
с адресным пространством проблем не возникало) дополнительные Radiobutton"ы добавлял таким
путём, притом вполне функциональные. Да ещё и размер диалога подправлял. Если надо, могу и
код продемонстрировать.
← →
SasaR (2002-04-04 17:01) [4]А можно еще проще: -
b := TMyButton.Create(nil);
b.ParentWindow := Wnd;
где Wnd - хендл окна, в котором нужно создать нашу кнопку, а "b"-наша кнопка, потомок стандартной :)
← →
Suntechnic (2002-04-04 18:29) [5]>PVOzerski © (04.04.02 16:50)
>...Если надо, могу и код продемонстрировать.
Эта реплика конечно не ко мне, но ИХМО этот код у каждого на машине "валяется" :). Достаточно открыть исходники PictureDialog
>LeSS © (04.04.02 15:42)
Да не всё так просто как советуют. Чтобы кнопочку там сотворить внедрятся в чужое адресное пространство надо. См. совет PVOzerski © (04.04.02 16:45) про CreateRemoteThread(только для Windows NT/2000/XP) или читай про ловушки SetWindowsHookEx.
← →
LeSS (2002-04-05 09:59) [6]Спасибо ВСЕМ за то что уделили время....на вопрос от Song отвечаю да....в этом вся и фишка)
Полностью согласен с Suntechтic"ом - не так все просто, и про пространство - правда..."GetWindowLong, SetWindowLong и, может быть, CreateRemoteThread" - надо переварить.....ловушку можно поставить, но както не красиво, через задницу...:))))
>PVOzerski © (04.04.02 16:50)
>...Если надо, могу и код продемонстрировать.
Спасибо, с удовольствием.....
← →
cok (2002-04-08 19:52) [7]2 SasaR
Что-то у меня ваш пример не работает (по-моему он слишком прост :).
← →
Derr (2002-04-11 16:35) [8]Низя в чужое кнопку!
Но можно через нажатия клавишь
← →
LeSS (2002-04-16 10:46) [9]Получил письмо от PVOzerski. не имел возможности вовремя ответить. т.к. был в отъезде. Большое спасибо. Мыло у меня не работает, поэтому пишу через чат.
>>Derr Но можно через нажатия клавишь...
Как? Я так понял, что Вы предлагаете написать резидент, который бы отлавливал нажатие по клаве. Но это не совсем то,что мне нужно, к сожалению. Если Вы имели ввиду чтото другое, поясните пожалуйста, на примере если можно.
А если зделать так.......Писать код создания кнопки так, какбудто создаешь ее на форме своего проекта.Затем инструментами склеиваем две проги - прогу с формой, на которой должна создаваться кнопель и мое приложение, скомп. на Делфи. (инструменты вроде тех, которые лежат на хакерских сайтах, может, кто знаком, из двух exe получаем один...). Здесь, мне кажется, решается вопрос о чужом пространстве..Только вот как отлаживать такую программу:)...
Это лишь мои рассуждения, и я начинаю эксперимент.. Буду рад услышать отзывы по этому поводу, если кто хочет...если кто чтото знает или если ктото хочет сказать "Не делай так, взорвется:)" на собственном опыте...
Спасибо, до свидания...
← →
Derr (2002-04-16 14:48) [10]Не отлавливал, а посылал нажатия клавиши (ее код).
← →
StepByStep (2002-04-16 15:13) [11]Добавление в любое приложение
EnumWindows - смотрим какое окно
CreateWindow
← →
Derr (2002-04-17 15:59) [12]CreateWindow ?
Не понял.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.06.17;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c