Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.08.15;
Скачать: [xml.tar.bz2];

Вниз

Замена Windows Explorer   Найти похожие ветки 

 
dmur   (2002-08-04 13:57) [0]

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

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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



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

2dmur (04.08.02 19:50)
SetWindowPos()

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


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

Ну что ж, 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;


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

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

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


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

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

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



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.08.15;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.006 c
3-48002
vaa
2002-07-27 12:42
2002.08.15
COM


1-48111
GTA 3
2002-08-05 12:11
2002.08.15
Как записать опр. строку по счёту в файл?


1-48203
ghg
2002-08-01 08:02
2002.08.15
Работа со строками


1-48135
DikobraZ
2002-08-01 12:54
2002.08.15
TreeView


7-48336
Dizer
2002-05-30 11:55
2002.08.15
Компонент ядра загрузки процессора





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