Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Замена Windows Explorer [D6, WinXP]


dmur ©   (2002-08-04 13:57:00) 

В силу определенных обстоятельств мне приходится писать прогу, заменяющую собой Проводник Windows. В связи с чем у меня возникла масса вопросов, главные и из которых ниже:

1. Как сделать так чтобы окно являющееся Desktop-ом всегда находилось сзади запущенных им же программ (их окон), так как это делает Рабочий стол?

2. Как сделать так чтобы окно являющееся ТaskBar-ом всегда находилось снизу , так как это делает Панель задач?

3. Нет ли у кого исходников некоторого подобия Панели задач?

4. Нет ли у кого документации по данной тематике?

Код должен работать во всех ОС: 95/98/Me/XP/NT4/2000

Заранее благодарен всем ответившим на мои вопросы.


Кулюкин Олег   (2002-08-05 09:05:00) [1]

2 dmur
А зачем Вам подменять Эксплорер???
Это путь к погибели (или к геморрою, именно с двумя "ЭР").

Обрисуйте проблемму, может есть способ сделать это иначе, не пытаясь переписать половину ОС.


dmur   (2002-08-04 20:27:00) [2]

Для Юрий Зотов: Спасибо.

Для Song: Насчет людей которые наоставляют свои вопросы на десятке формуов -- я ответил здесь, еще не успев еще прочитать Ваш ответ на www.sources.ru. Так нервно реагировать в любом случае не стоит.


Юрий Зотов   (2002-08-04 20:16:00) [3]

Ну что ж, OK, дерзайте. Либо и правда сделаете, либо убедитесь, что не все так просто. В любом случае польза.

Вот форма, которая всегда остается сзади всех окон, показанных позже нее. Если запустить ее, как Shell... сами понимаете.

type
TForm1 = class(TForm)
private
procedure WMWindowPosChanging(var Message: TWMWindowPosChanging); message WM_WINDOWPOSCHANGING;
end;

procedure TForm1.WMWindowPosChanging(var Message: TWMWindowPosChanging);
begin
with message.WindowPos^ do flags := flags or SWP_NOZORDER;
inherited
end;


Song   (2002-08-04 19:53:00) [4]

2dmur (04.08.02 19:50)
SetWindowPos()

P.S. На самом деле бесят люди, которые наоставляют свои вопросы на десятке формуов и, не глядя на ответы на последних, идут спрашивать на другие. Dmur это про Вас тоже.


dmur   (2002-08-04 19:50:00) [5]

Готов, тем более, что нужно повторить не все функции проводника, а только некоторые. На самом деле проводник не так уж сложен как кажется.

Меня интересует прежде всего как заставить самодельный рабочий стол все время оставаться "сзади".


Юрий Зотов   (2002-08-04 14:40:00) [6]

Рабочий стол - это и есть Desltop.
Панель задач - это и есть TaskBar.

И то, и другое - это просто окна. Именно Проводник Windows их и создает. А также он создает ярлыки Рабочего стола, Главное меню и прочие элементы пользовательского интерфейса. И управляет контекстным меню для этих элементов. И запускает другие программы, когда мы щелкаем "по ним".

Поэтому Проводник и называется "Пользовательская оболочка Windows". Не будет Проводника - не будет и ничего этого. Ни дектопа, ни таскбара - вообще ничего. Просто пустой экран. И у юзера даже не будет способа запустить какую-то программу.

Если хотите, чтобы все это было - Вашей программе придется взять эти функции на себя. Или дать юзеру другой, Ваш собственный интерфейс.

Вы готовы написать ТАКУЮ программу? И у Вас есть достаточное для этого время?


Наверх

Титульная страница Поиск, карта сайта Написать письмо