![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
рабочий стол в качестве парента компонента [D7, XP]
redlord © (2006-07-04 12:17:00)всем привет
подскажите как создать в рантайме форму
1 у которой парентом является рабочий стол ?
2 можно ли в качестве парента назначить чужой контрол
myform:=tform.Create(? ? ?);
myform.Left:=20;
myform.Top:=20;
myform.Height:=200;
myform.Width:=200;
myform.Parent:=? ? ? ?
redlord (2006-07-05 22:09:00) [1]to koha
да так и есть нужно findwindow использовать, теперь все приклеивается.
тока теперь проблема другого плана
при закрытии проги установившей хук , происходит критичесская ошибка
в проге на которую хук был установлен
а еси первой закрыть прогу на которую поставлен хук то все работает без глюков
и кто должен убивать приаттаченный обект ?
StriderMan (2006-07-05 19:17:00) [2]
> а вот на контрол чужой проги не хочет липнуть
используй ParentWindow (надо знать хэндл окна, на которого "лепить"). при этом parent обязательно ставь nil.
koha (2006-07-05 19:04:00) [3]application.handle - это кажется хендел собственного application, наверно
необходимо поиметь handle того application на который собираешся прилепить свое окно. Наверно необходимо использовать функции поиска: findwindow?
Я не пробовал так, хотя стоит попробовать может, что и получится, меня эта тема тоже заинтересовала.
redlord (2006-07-04 18:36:00) [4]спасибо. на рабочий стол повесить получилось,
а вот на контрол чужой проги не хочет липнуть
Windows.SetParent(Frm.Handle,application.handle);
для чего это надо:
данный код будет забускатся из dll
устанавливающий хук на чужую прогу
а следовательно форма да илюбой контрол
окажется в адрессном пространстве чужой проги со всеми вытекающими последствиями (добавляю кнопочку проге стороннего разработчика)
antonn (2006-07-04 14:12:00) [5]koha (04.07.06 13:50) [3]
Только какой смысл?
по Win+D не сворачивается. Тут где то рядом была ветка, оттуда сюда пришли...
koha (2006-07-04 13:50:00) [6]Вот окно в рантайме принадлежащее рабочему столу:
Frm:=TForm.Create(Owner);
Windows.SetParent(Frm.Handle,GetDesktopWindow());
Frm.Show;
Только какой смысл?
koha (2006-07-04 13:03:00) [7]Попробуй так:
windows.SetParent(myForm.Handle,GetDesktopWindow());
Button - точно прилипает к рабочему столу.
btns:=TButton.Create(Owner);
btns.Parent:=Fm;
windows.SetParent(btns.Handle,GetDesktopWindow());
btns.Left:=random(Screen.Width);
btns.Top:=random(Screen.Height);
Fay (2006-07-04 12:56:00) [8]> Create(? ? ?)
Здесь ожидается не Parent, а Owner
> чужой контрол
Это хто?