===================================================================== AJPapps - Private desktops 1.06 Линда Кайе 2007-2016. Посвящается Ариэль ===================================================================== Маленькая программа для Windows NT, создающая дополнительные рабочие столы, на которых можно запускать программы, видеть которые окружающим совсем не обязательно ^_^ Разумеется, в любой момент можно переключаться между ними и основным рабочим столом. История создания ---------------- Знаете, порой бывает так, что очень не хочется чтобы окружающие видели, что у тебя открыто. Скажем, сидишь ты на работе, работаешь, а начальство так и снуёт в поисках запущенных асек. Или делаешь красивую хентайную обойку крайне занятного содержания, а домашние поминутно бегают вокруг. Или вообще красота, когда окно свёрнуто, но из-за периодических сбивок очерёдности переключения... нажимаешь Alt+Tab, а вместо Word'а на экране появляется ImageShack uploader с хентайной картинкой. Кошмар! Собственно, я как раз делала пачку обоек, когда задумалась над тем, как бы прятать всю эту красоту в случае если нагрянет кто. Так я и вспомнила что есть в NT функции для этого. Ещё ранее я пыталась с ними справиться, но тогда они меня напугали ещё при первом взгляде, и я сбежала в панике ^_^' В этот раз я начала делать маленький тест (который развился в эту программу), и всё оказалось не так уж страшно ^_^' На самом деле тест сначала просто смотрел какие рабочие столы есть в системе (эту функцию я оставила в программе), а потом начал на десять секунд переключаться на новый рабочий стол чтобы посмотреть, что там творится ^^ Оказалось что там нет ни чего ^^ Повозившись немного, я сделала первый вариант программы, довольно простой, но работающий. Раз рабочие столы созданы для безопасности, то почему бы не использовать их для собственной безопасности? ^_^ Очередная версия программы (1.01) писалась скорее по просьбе Призрака, который захотел настроек горячих клавиш. Ну а попутно я решила расширить функциональность и добавить рабочих столов на все случаи жизни ^_^ История изменений ----------------- • 1.00.0007 Первый публичный релиз. • 1.00.0008 [+] Появился ключ /Info. • 1.00.0009 [+] Для каждого рабочего стола теперь можно задавать оболочку. [-] Win+1 теперь всегда открывает рабочий стол по умолчанию. • 1.01.0011 [+] Теперь горячие клавиши можно настраивать. [+] Количество дополнительных рабочих столов увеличилось до шести. [+] Настройки перенесены в реестр. [+] Теперь по умолчанию значение оболочки пусто. [+] Ребилд с новыми библиотеками. • 1.01.0017 [-] Исправлен баг с вылетом программы при вызове окна настроек. • 1.01.0034 [-] Исправлен баг с выводом рабочих столов в других оконных станциях. [+] Изменено окно списка оконных станций. • 1.02.0042 [+] Появился интерфейс командной строки. [+] Появилась кнопка редактирования в настройках. • 1.03.0043 [+] Для большей секурности при уходе машины в спячку, активируется рабочий стол по умолчанию. • 1.03.0044 [-] Теперь при неудавшемся переключении рабочего стола не выдаётся ни каких сообщений об ошибках. Это очень полезно, если система заблокирована. • 1.04.0048 [+] Для большей секурности при подключении и отключении терминальной сессии активируется рабочий стол по умолчанию. • 1.04.0049 [+] Активация рабочего стола по умолчанию теперь настраивается. • 1.05.0050 [+] Заработало переключение на рабочий стол в списке рабочих столов и оконных станций. Работает только для текущей оконной станции. • 1.06.0052 [+] Теперь можно настроить переключение на рабочий стол по умолчанию при бездействии. Это работает только в Windows 2000 и выше. [+] Немного доработана документация. • 1.06.0054 [+] Теперь в окне информации о рабочих столах копировать можно все элементы, а не только рабочие столы в текущей оконной станции. [-] При закрытии диалоговых окон программы фокус мог оставаться на скрытых окнах. • 1.06.0055 [-] Программа вылетала при выводе списка оконных станций и рабочих столов, если у какой-либо оконной станции был ноль рабочих столов. [+] Добавлено важное предупреждение ниже. • 1.06.0056 [-] Разлепила слипшиеся кнопки в окне информации о рабочих столах и оконных станциях. Внимание! --------- При завершении работы системы или выходе пользователя из неё, Windows будет переключаться на дополнительные рабочие столы для нормального завершения программ, запущенных на них. Таким образом будет видно, что на них запущено, и на медленных или загруженных системах всё это может быть видно довольно долго. Имейте это в виду, если прячете что-то от других пользователей. Программа может работать со всевозможными глюками, если в системе запущен Mail.ru Агент. В частности, Магент будет постоянно переключаться на рабочий стол по умолчанию, что сделает невозможной нормальную работу с дополнительными рабочими столами. Зачем он это делает - не ясно, поэтому очень возможны прочие глюки как в самом Магенте, так и в системе. О проблеме было сообщено в сообществе, но разработчики дружно его проигнорировали. Если Вы всёже хотите запускать одновременно эту программу и Mail.ru Агент, не обращайтесь ко мне с этим вопросом - обращайтесь в саппорт Mail.ru. Та же проблема наблюдается и в старых версиях мессенджера Miranda IM. Решается это отключением перехода в Away при блокировке рабочей станции. Поможет обновление до новой версии. Также обратите внимание, что запуск двух копий Проводника (Explorer) на разных рабочих столах может вызвать падение производительности системы. Поэтому я рекомендую в качестве оболочки на дополнительных рабочих столах запускать что-нибудь вроде FAR, Total Commander или Q-Dir. Линуксоиды могут запустить CMD.EXE в полноэкранном режиме ^_^ Зависимости ----------- Для работы этой программы нужны следующие компоненты: • AJPapps - AJPapps support library 1.00 Файл AJPappsSupport0100.DLL • AJPapps - Библиотека общих функций 3.01 Файл CommonFunctions0301.DLL • AJPapps - Subclasser 1.00 Файл Subclasser0100.DLL • AJPapps - System tray icon control 2.01 Файл SysTray0201.OCX • AJPapps - Panel control 1.00 Файл Panel0100.OCX • Microsoft Visual Basic Virtual Machine Файл MSVBVM60.DLL Эти компоненты обязательны. Они уже включены в программу установки ^_^ Информация о разработке ----------------------- Язык: Microsoft Visual Basic 6.0 SP6 Платформа: Windows XP Professional SP3 Установка --------- Просто запустите Setup.PrivateDesktops.EXE, и программа установки сама создаст все необходимые ярлыки. Использование ------------- При запуске программа проверяет настройки и пытается создать все включенные рабочие столы. По умолчанию создаётся только один дополнительный рабочий стол, однако всего можно включить до шести рабочих столов, однако это (теоретически) может сказаться на производительности системы. Если во время этого процесса произойдёт какая-либо ошибка, программа будет закрыта. После создания каждого рабочего стола, программа пытается запустить на каждом соответствующую программу-оболочку. По умолчанию не запускается ни чего, но позже в настройках можно указать любую программу. На этом этапе при возникновении ошибок сообщения не выводятся и программа продолжает работу, записывая предупреждение в журнал событий. Наконец программа регистрирует горячие клавиши. Здесь возможны ошибки, о которых программа сообщит и продолжит работу. Обычно они связаны с тем, что такие комбинации уже зарегистрированы другими программами. Исправить это можно в настройках. По умолчанию рабочему столу по умолчанию присваивается комбинация Win+1, первому дополнительному рабочему столу - Win+2, и так далее. Программа ни как не отмечает, на каком рабочем столе находится пользователь, поэтому ориентироваться можно только на свою память ^^ Программа помещает иконку в трей, через которую можно вызвать меню. При выходе из программы, автоматически будет выбран рабочий стол по умолчанию. Остальные рабочие столы ни куда не исчезают, и будут существовать до выхода из системы, если на них запущены какие-либо программы. Программы, запущенные на дополнительных рабочих столах также продолжат свою работу. Пункт меню "Оконные станции и рабочие столы" выводит окно со структурой оконных станций и рабочих столов в системе. Эта информация ни на что не влияет и приводится просто так ^^ Чтобы посмотреть эту информацию не создавая дополнительных рабочих столов, запустите программу с параметром /Info. Программа просто завершится как только окно со списком будет закрыто. Пункт "Запустить оболочку" выводит подменю, из которого можно на указанном рабочем столе запустить оболочку. Это может быть полезно, если Вы изменили настройки рабочего стола, указав другую оболочку. В подменю выводятся все включенные рабочие столы, однако для рабочего стола по умолчанию (он числится под номером 0) эта команда не доступна. "Запускать с Windows". Эта опция включает или отключает автозапуск программы для текущего пользователя. Обратите внимание, что на новом рабочем столе будут работать основные клавиши вроде Alt+Tab, Windows, но не будут работать горячие клавиши, определённые программами, запущенными на других рабочих столах. Например, комбинация Win+R откроет окно "Запуск" на рабочем столе по умолчанию, вместо текущего. Исключение составляют программы, которые учитывают текущий рабочий стол при обработке горячих клавиш. Также могут возникнуть проблемы с программами, делающими скриншоты: при снятии скриншота с дополнительного рабочего стола вместо картинки будет чёрный квадрат. Клавишу PrintScreen это не касается, если, конечно, программа не перехватывает её. А теперь подробнее о настройках. Пункт "Настройки" выводит соответствующее окно, в котором для каждого рабочего стола можно указать программу-оболочку, а также горячие клавиши. Слева выводится список доступных рабочих столов. Включить каждый из них можно установкой галочки напротив его названия. Только нулевой рабочий стол невозможно отключить, поскольку он является рабочим столом по умолчанию. Для того чтобы вывести настройки конкретного рабочего стола, щёлкните его название в списке. Справа выводятся настройки для выбранного рабочего стола. В разделе "Горячая клавиша" указывается комбинация, которая активизирует выбранный рабочий стол. Обратите внимание, что программа не проверяет уникальность комбинаций и зарегистрированы ли они в системе - это остаётся на совести пользователя. Раздел "Оболочка или скрипт" настраивает программу, которая будет запущена при создании рабочего стола. Здесь можно указать любую программу, например, FAR или Total Commander. Здесь же можно указать параметры запуска программы. Вот так, например, можно запустить FAR: C:\Utils\Far\Far.exe /i Кнопка с тремя точками выводит окно выбора файла. Если вместо имени файла указать звёздочку, то будет запущена оболочка по умолчанию (обычно Explorer.EXE). Если же оставить это поле пустым, программа не будет запускать ни чего. Тут есть одна хитрость. Если нужно запустить не одну программу, а несколько, вместо программы можно указать BAT файл, в котором можно указать любые команды для запуска необходимых программ. Вот пример такого файла: START FakeWallpaper.EXE /Picture X:\omake\uvfx7snl_2.jpg START C:\Utils\Far\Far.exe /i Раздел "Имя рабочего стола" ни чего не настраивает, а просто сообщает имя с которым создан или будет создан рабочий стол. Это имя может пригодиться другим программам, например AJPapps - Run app on desktop. Обратите внимание, что все настройки кроме имени файла оболочки вступят в действие только при следующем запуске программы. Теперь немного об уничтожении рабочих столов. Как показала практика, рабочие столы не уничтожаются, пока не закрыты все программ, запущенные на них. Поэтому чтобы уничтожить дополнительные рабочие столы, переключитесь на каждый из них и закройте все программы, которые на них запущены. После этого завершите работу Private desktops. Чтобы убедиться, что дополнительные рабочие столы исчезли, можно запустить программу с ключом /Info. В этом случае рабочие столы созданы не будут, а программа просто выведет их список. Командная строка ---------------- Для любителей заходить к себе на компьютер через телнет или SSH я добавила интерфейс командной строки. Он работает только если программа уже запущена. Чтобы получить краткую справку, запустите программу с параметром "/?" (без кавычек). /Close - закрыть программу и переключиться на рабочий стол по умолчанию. Например, это можно использовать в планировщике в обеденное время, если Вы забываете переключаться на рабочий стол по умолчанию перед уходом ^^ /Swinch N - переключиться на рабочий стол N, где N - номер рабочего стола. Дополнительная безопасность --------------------------- Для того чтобы враг не увидел, что запущено на дополнительных рабочих столах, пока вас нет у компьютера, имеется возможность настроить автоматическое переключение на рабочий стол по умолчанию по определённым событиям, о которых - ниже. 1. При уходе машины в спящий режим. Я сделала это для того чтобы при экстренном усыплении машины, когда не до рабочих столов (например, когда UPS на последнем издыхании), потом не вылез маскируемый рабочий стол. При этом, если машина была заблокирована, переключение не произойдёт - это особенность Windows NT. 2. При подключении и отключении терминальной сессии (в том числе и Remote Desktop). В данном случае переключение происходит как при подключении удалённого пользователя к машине, так и при его отключении по любым причинам. Это сделано на случай неожиданного вмешательства любопытных админов или разрыва связи. 3. При бездействии. Это работает как скринсейвер: вы задаёте интервал в секундах (в минуте 60 секунд), и, если за этот промежуток не наблюдается никакой активности пользователя, происходит переключение на рабочий стол по умолчанию. Например, это происходит, если вы убегаете по очень срочным делам и забываете переключиться. Каждый из этих режимов можно включить или выключить по желанию. По умолчанию включены все, кроме третьего. Удаление -------- Удаление самой программы производится обычным способом - через Установку и удаление программ. Однако рекомендуется перед этим запустить программу, снять галочки отвечающую за автозапуск, и закрыть программу. Маленький копирайт ------------------ 1. Программа распространяется бесплатно. 2. Вы имеете право распространять её на тех же условиях. 3. При распространении вы не имеете права менять авторство программы, присваивать его себе или каким-либо иным способом искажать его. 4. Разрешено коммерческое использование программы (в офисе, на производстве) за исключением её платного распространения или сдачи в аренду. 5. Программа распространяется как есть. Автор не несёт ответственности за любые трагедии или несчастные случаи, вызванные использованием программы. 6. Вы имеете право использовать ActiveX компоненты, поставляемые с программой, в собственных программах. При этом автор не гарантирует совместимость будущих версий компонентов. 7. Для любого пункта данного соглашения может быть сделано исключение с разрешения автора программы. 8. По любым вопросам, связанным с данной программой, обращайтесь по адресу lindaoneesama@gmail.com Загружено с http://purl.oclc.org/Linda_Kaioh/Homepage/