Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
14-55262
Дмитрий Баранов
2002-05-13 19:31
2002.06.17
Документриование


1-55200
Коля
2002-06-05 02:17
2002.06.17
try в TRegistry


14-55277
Semion
2002-05-12 15:36
2002.06.17
Нужна компонента с функциями Object Inspector


3-55002
Misha
2002-05-22 17:52
2002.06.17
Вложенный запрос


1-55127
olga k
2002-06-02 18:46
2002.06.17
Раьота с файлами и строками





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