![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Скрыть элементы рабочего стола [D5, Win95/98]
Hokum © (2002-02-18 16:39:00)Здраствуйте!Необходимо при запуске моей программы скрыть все элементы рабочего стола, чтобы запущенная программа была единственным видимым его эелементов, т.е. не должно быть ни иконок, ни кнопки пуск, ни панели задач, ни запущенных параллельно программ...абсолютно чистый экран.Посоветуйте.
SeF (2002-02-27 02:43:00) [1]
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowWindow(FindWindow("Progman", "Program Manager"), SW_HIDE);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ShowWindow(FindWindow("Progman", "Program Manager"), SW_SHOW);
end;
минусы скрывает только значки на рабочем столе. (9x/me/2k работает, XP не пробовал)
sniknik (2002-02-26 00:37:00) [2]Из программы
Прячет таскбар.
var
HTaskBar: THandle;
begin
HTaskBar:= FindWindow("SHELL_TRAYWND", nil);
ShowWindow(HTaskBar, SW_HIDE);
end;
прячет рабочий стол
function GetDesktopListViewHandle: THandle;
var S: String;
begin
Result := FindWindow("ProgMan", nil);
Result := GetWindow(Result, GW_CHILD);
Result := GetWindow(Result, GW_CHILD);
SetLength(S, 40);
GetClassName(Result, PChar(S), 39);
if PChar(S) <> "SysListView32" then Result := 0;
end;
var HMainForm: THandle;
begin
HMainForm:= GetDesktopListViewHandle;
Button4.Caption:= IntToStr(HMainForm);
ShowWindow(HMainForm, SW_HIDE);
end;
замена
ShowWindow(HMainForm, SW_HIDE);
на
SendMessage(HMainForm, WM_CLOSE, 0, 0);
закрывает. В этом случае востанавливается только перезагрузкой.
VuDZ (2002-02-25 02:07:00) [3]а, сорри, я не прав, я предложил метод что-бы спрятать все иконки с раб. стола... бывает-с...
Sasha9 (2002-02-24 22:54:00) [4]2VuDZ
возвращаясь к первоначальному вопросу:EnumWindows() даёт хендлы всех окон, а с их помощью можно спрятять все окна и будет чистый экран
VuDZ (2002-02-24 15:26:00) [5]2Sasha9 чем легче?
и что ты с ним сделаешьс этими окнами?
PS я конечно понимаю, что паскалю пофигу на регистр ф-ий, но если уж ссылаешся на SDK пиши как есть, EnumWindows(), etc.
MCi (2002-02-24 15:13:00) [6]Скрыть иконки с рабочего стола можно также через реестр:
в разделе
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System" создаешь параметр типа DWORD "NoDispCPL" со значением 1. После этого просто перезагружаешь Explorer и иконок как небывало(даже правая кнопка мыши не работает).
Sasha9 (2002-02-23 19:24:00) [7]а легче всего
enumwindows(см. MS SDK)
VuDZ (2002-02-19 12:22:00) [8]всё элементарно, Ватсон:
1. находим хэнд окна - это класс SysListView32, заголовок - "FolderView".
2. Делаем ShowWindow(hwnd, SW_HIDE);
3. UpdateWindow();
и всё... иконок нет...
если они нужны - ShowWindow(hwnd, SW_SHOW);
drpass (2002-02-19 11:13:00) [9]Можно из своей программы принудительно прибить explorer
Nikolay (2002-02-18 18:39:00) [10]2 это только после перезугрузки.
Nikolay (2002-02-18 18:39:00) [11]2Юрий Зотов это только после перезугрузки.
Polevi (2002-02-18 17:58:00) [12]можно создать TOPMOST окно во весь экран
Юрий Зотов (2002-02-18 16:57:00) [13]Файл system.ini
Секция boot
Параметр shell=ваша_программа
И не будет никаких рабочих столов, таскбара, ярлыков и прочего. Соответственно, пользовательской оболочкой системы становится Ваша программа и теперь за все отвечает она.