Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разное тестирование > Микро-часы для рабочего стола


Автор: SergeCpp 15.11.2005, 17:23
Здравствуйте!

Предлагаю свои http://gzip.rsdn.ru/File/44396/Clock.rar, которые работают у меня уже несколько лет.
Я их понемногу усовершенствую.
В архиве есть описание и дополнительные скрин-шоты (из-за них он и вырос).

Есть там и исходники.

Принцип — минимализм. Не создаётся процесса, а подключаемся (инжектируемся) в Explorer.

Размер "инжектера" — 1.5 килобайта, DLL-часов — 23 килобайта.

Мышь находится вне области графиков
http://www.rsdn.ru/File/44396/clock_1.png

Мышь находится в области графиков
http://www.rsdn.ru/File/44396/clock_2.png

Кратко:

Кроме отображения времени они выравнивают панели с кнопками
(Windows Tool Bars, создаются R-Click на Task Bar,
Toolbars...\New Toolbar... и перетаскиваются оттуда),
а также выводят на их заголовки некоторую информацию.

Некоторая информация также видна,
если указатель мыши НЕ находится на одной из панелей.

Ещё они слегка настраивают Explorer
и размещают его аккуратнее.

Если открыть два Explorer,
то они располагаются один над другим.

После некоторого периода бездействия
Explorer минимизируется.
Он также минимизируется, если поверх него
открылось некоторое большое окно (Far, например).

Это относится и к Explorer'у, открытому
в Kiosk Mode (MSDN Q154780) + Explorer Mode (MSDN Q178058),
например, iexplore -e -k D:\Z,
что увеличивает рабочее пространство
(и скрывает ненужные для пользователей кнопки).

Консольные окна размещаются так, чтобы не выходить за экран.
Также настраивается их размер, чтобы не было Scroll Bar.

На часах можно сделать Double-Click.

Ещё наличествует R-Click там же.
Это не "About Box".

Каждые 15 минут часы всплывают,
а каждую 10-ю минуту показывают другим цветом.

Никаких "попискиваний" нет.
Это слишком отвлекает.

Может быть так, что всплывшие часы мешают.
Тогда по ним нужно провести указателем мыши.

Часы всплывают также при нажатии Alt+Control+Shift.

При нажатии Alt+Control+Shift всплывают и Tool Bars,
если указатель мыши находится над любой из них.
Это удобно при работе (Word'а, например) в полноэкранном режиме.


Спасибо за внимание.

Автор: SergeCpp 17.11.2005, 07:15
Здравствуйте!

Я обновил свои микро-часы.

http://www.rsdn.ru/File/44396/ClockExe.rar

http://www.rsdn.ru/File/44396/ClockSrc.rar

http://www.rsdn.ru/File/44396/ClockView.rar

Вот окончание прежнего описания

Часы всплывают также при нажатии Alt+Control+Shift.

При нажатии Alt+Control+Shift всплывают и панели с кнопками,
если указатель мыши находится над любой из них.
Это удобно при работе (Word'а, например) в полноэкранном режиме.

А вот — добавление к нему

Приоритет "несущего" процесса (Explorer) при таких всплытиях повышается,
так же, как и при обычном наведении указателя мыши на панель с кнопками.

Это облегчает запуск нужной программы,
если та, которая работает сейчас (возможно, в полноэкранном режиме),
зависла или слишком занимает процессор.

А вот этого я, к сожалению, не сделаю

Прозрачные часы и графики — так как принципиально не использую
так называемые "обои" рабочего стола, да и сам Desktop у меня отключён.

Код

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoActiveDesktop"        = dword:1
"NoActiveDesktopChanges" = dword:1
"NoDesktop"              = dword:1

;; EOF


Спасибо за внимание.

Автор: SergeCpp 21.11.2005, 07:53
Дополнительные скриншоты можно увидеть на http://sergecpp.mylivepage.ru/image/2/

Автор: SergeCpp 27.11.2006, 17:09
Исходные тексты программы, осуществляющей загрузку часов в адресное пространство процесса Explorer.exe

Может пригодиться и сама по себе

Выгрузить часы из адресного пространства Explorer.exe можно, отправив окну часов сообщение WM_CLOSE

Автор: V.A.KeRneL 17.12.2006, 00:21
SergeCpp, большое спасибо за хорошую программу и подробное описание! Особенно за исходники!

З.Ы. У Вас неплохой сайтик.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)