Вверх ↑
Этот топик читают: Гость
Ответов: 574
Рейтинг: 1
#1: 2007-08-14 21:34:58 ЛС | профиль | цитата
В папке с примерами HiAsm есть проект, где показано, как искать окна и работать с ними. Проект любопытен тем, что с его помощью можно скрыть панель задач и кнопку пуск. Напомню схему:

code_1809.txt

А возможно ли таким же способом скрыть рабочий стол? Он, вроде, имеет имя Program Manager, или что-то в этом роде. Но у меня ничего не получилось…
карма: 0

0
файлы: 1code_1809.txt [1.4KB] [552]
Ответов: 689
Рейтинг: 20
#2: 2007-08-14 21:57:15 ЛС | профиль | цитата
Рабочий стол не окно, рабочий стол - обычная папка.
карма: 0

0
Ответов: 5446
Рейтинг: 323
#3: 2007-08-15 07:03:25 ЛС | профиль | цитата
oldTV, спешу разочаровать - Рабочий стол вполне себе окно





карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#4: 2007-08-15 11:30:48 ЛС | профиль | цитата
oldTV писал(а):
рабочий стол - обычная папка.

обычная папка - это exploer
explorer - это обычное окно
=> рабочий стол всетаки обычное окно

Yuriy писал(а):
Но у меня ничего не получилось…

example->Windows->WinTools.sha
карма: 27
0
Ответов: 689
Рейтинг: 20
#5: 2007-08-15 13:37:30 ЛС | профиль | цитата
как исходя из знания того, что рабочий стол - это окно его скрыть?
что в итоге надо автору вопроса?
  • сделать папку скрытой?
  • скрыть окно explorer.exe в тот момент, когда пользователь откроет в нем папку "рабочий стол"?
    А если Windows например не русский, а какой нибудь другой (украинский например, или японский)?

    Или автор хочет скрыть explorer.exe? так это невозможно, это оболочка...
    Что же хочет автор?

    Может он пишет программу, которая не дает доступ к чему-то? Вопросы доступа прекрасно решаются системными политиками, в том числе и по ограничению доступа к рабочему столу пользователя. Для управления рабочим столом не надо никаких програм писать, более того, я настоятельно рекомендую использовать встроенные средства.
  • gpedit.msc - запустите консоль управления "Групповые политики"
  • Перейдите в Конфигурация пользователя - Административные шаблоны - Рабочий стол
  • Задайте необходимые свойства
    [size=-2]------ Добавлено в 13:37
    В довеску: если рабочий стол окно, а активная папка в настоящий момент, к примеру, C:Windows, и других папок не открыто, какой же тогда у окна рабочего стола PID и Handle? iarspider, разачаруйте меня еще раз :?
  • карма: 0

    0
    Администрация
    Ответов: 15295
    Рейтинг: 1519
    #6: 2007-08-15 14:19:56 ЛС | профиль | цитата
    oldTV писал(а):
    Или автор хочет скрыть explorer.exe? так это невозможно, это оболочка...

    все возможно. И скрыть, и закрыть, и запустить заного. И даже заменить полностью на что-то еще.

    [size=-2]------ Добавлено в 14:19
    Dilma писал(а):
    В довеску: если рабочий стол окно, а активная папка в настоящий момент, к примеру, C:Windows, и других папок не открыто, какой же тогда у окна рабочего стола PID и Handle? iarspider, разачаруйте меня еще раз

    1) в windows есть процесс explorer.exe.
    2) у процесса explorer.exe есть всегда как минимум 2 видимых окна: TaskBar и Program Manager.

    PID - это идентификатор процесса.
    Handle - это идентификатор окна.

    Все открываемые папки(C:Windows скажем) это очередные окна процесса explorer.exe.

    В терминах hiasm, если грубо:
    Program Manager - MainForm
    TaskBar - ChildForm
    Окна с папками - ChldFormEx.
    карма: 27
    0
    Ответов: 2125
    Рейтинг: 159
    #7: 2007-08-15 14:45:40 ЛС | профиль | цитата
    Yuriy писал(а):
    А возможно ли таким же способом скрыть рабочий стол

    Скрыть рабочий стол (Desktop) нельзя, но можно создать другой рабочий стол (см. API CreateDesktop) и переключиться на него (см. API SwitchDesktop). Такие штучки тяжело отлаживать, т.к. после SwitchDesktop, если не переключиться обратно, увидеть первоначальный рабочий стол практически невозможно и придётся делать Logoff, т.е. все программы принудительно закроются.
    карма: 1

    0
    Ответов: 689
    Рейтинг: 20
    #8: 2007-08-15 15:43:50 ЛС | профиль | цитата
    tsdima писал(а):
    Скрыть рабочий стол (Desktop) нельзя

    О чем я пытаюсь и сказать... Такие штуки лучше вообще не отлаживать и работать с Desktop без фичей и крутых примочек, что-бы потом не жаловаться что linux стабильная система, а винда падает каждые 20 минут. Вот на машине никому в голову руль, тормоза и газ убирать не приходит, а на компах всем кому не лень хочется написать проги что-то круто скрывающие: панель задач, кнопку пуск, рабочий стол... Делать Вам нечего...
    карма: 0

    0
    Администрация
    Ответов: 15295
    Рейтинг: 1519
    #9: 2007-08-15 17:44:20 ЛС | профиль | цитата
    знатоки блин показал же даже чем скрыть и как скрыть... лениво запустить и попробывать чтоли?
    карма: 27
    0
    Ответов: 574
    Рейтинг: 1
    #10: 2007-08-15 18:24:42 ЛС | профиль | цитата
    oldTV, я почему задал такой вопрос. Просто в программе Delphi World, базе исходников Delphi, был код для скрытия рабочего стола, вот я и спросил "как". Делаю я эту программу не для прикола, шутки, распространения проги в нете и прочего... Это опять-таки улучшаю программу для магазина родителей. Ничего кроме программы там висеть не будет.

    Dilma писал(а):
    example->Windows->WinTools.sha


    Спасибо, Дмитрий!

    tsdima писал(а):
    Скрыть рабочий стол (Desktop) нельзя

    oldTV писал(а):
    О чем я пытаюсь и сказать...


    А это что тогда? Я скрыл. Вот:

    Add(MainForm,2367494,14,63)
    {
    Left=20
    Top=105
    Width=147
    Height=166
    Font=[Arial,8,0,0,1]
    link(onCreate,7131965:doFind,[(120,104)(120,76)])
    }
    Add(Button,10463612,133,98)
    {
    Left=45
    Top=45
    Font=[Arial,8,0,0,1]
    Caption="Hide"
    link(onClick,16602065:doWork1,[(184,104)(184,132)])
    }
    Add(WinTools,8455869,287,126)
    {
    link(Handle,7131965:Handle,[])
    }
    Add(Button,9440968,133,147)
    {
    Left=45
    Top=75
    Font=[Arial,8,0,0,1]
    Caption="Show"
    link(onClick,16602065:doWork2,[(184,153)(184,139)])
    }
    Add(ChanelToIndex,16602065,203,126)
    {
    link(onIndex,8455869:doVisible,[])
    }
    Add(FindWindow,7131965,287,70)
    {
    ClassName="Progman"
    Caption="Program Manager"
    }
    Add(Label,6543902,21,7)
    {
    Left=50
    Top=15
    Width=43
    Height=18
    Font=[Arial,8,0,0,1]
    Caption="Desktop"
    }
    карма: 0

    0
    Ответов: 2125
    Рейтинг: 159
    #11: 2007-08-15 18:44:18 ЛС | профиль | цитата
    Yuriy писал(а):
    Я скрыл. Вот:

    Ты скрыл окно проводника (иконки на рабочем столе). Но все остальные программы остаются. Я, конечно, могу предположить, что кнопки Alt-Tab или Windows-E не будут доступны, но если задача стоит так, чтобы пользователь не мог переключиться на другую программу, тогда надо делать новый Desktop.
    карма: 1

    0
    Администрация
    Ответов: 15295
    Рейтинг: 1519
    #12: 2007-08-15 18:57:00 ЛС | профиль | цитата
    по-моему, если задача заключает втом, чтобы пользователь работал только с одной программой проще не запускать explorer.exe при старте системы вообще, чем потом скрывать отдельные его части
    карма: 27
    0
    Ответов: 574
    Рейтинг: 1
    #13: 2007-08-15 18:59:40 ЛС | профиль | цитата
    tsdima писал(а):
    Ты скрыл окно проводника (иконки на рабочем столе).


    Ааа.. Ну мне этого достаточно. В магазине мы убрали клаву специально...

    [size=-2]------ Добавлено в 18:59
    Dilma писал(а):
    проще не запускать explorer.exe при старте системы


    Как этого добиться? В батнике винды каком-нибудь удалить?
    карма: 0

    0
    Администрация
    Ответов: 15295
    Рейтинг: 1519
    #14: 2007-08-15 19:01:21 ЛС | профиль | цитата
    пустое сервисное приложение вместо него подсунь - и всего делов-то.
    карма: 27
    0
    Ответов: 689
    Рейтинг: 20
    #15: 2007-08-15 22:08:10 ЛС | профиль | цитата
    Yuriy писал(а):
    oldTV, ... Делаю я эту программу не для прикола, шутки, распространения проги в нете и прочего... Это опять-таки улучшаю программу для магазина родителей. Ничего кроме программы там висеть не будет.


    Корректнее не писать программу, а скрыть с использованием системной политики. Более того, с помощью системной политики можно заставить запуститься только одно приложение, например твое. И более ничего. Смотри подробнее раздел "Система" в тех же груповых политиках, пункт "Выполнять только разрешенные приложения для Windows". С помощью груповых политик можно скрыть и запретить все, что только можно подумать: специальные клавиши, запуск Диспетчера задач, убрать значки с рабочего стола, запретить Ctrl+Alt+Del, запретить F1, навигацию, чтение, запись по дискам (кроме указанных) и прочее, прочее, прочее. Более того, такой способ значительно проще администрировать и управлять.

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

    Мой тебе совет: используй gpedit.msc. В справке там нормально написано. Понятно. А если у тебя Vista стоит, уууууууууууууу, там вообще с политиками все круто. Запретить можно хоть черта лысого.
    карма: 0

    0
    Сообщение
    ...
    Прикрепленные файлы
    (файлы не залиты)