Old-DOS.ru

Clock — Микро-часы для рабочего стола

РАБОЧИЙ СТОЛ >> Часы
Главная страница Файлы Игры Поиск Форум Wiki Библиотека Галерея Гостевая Ссылки О проекте

Логин:
Пароль:


Регистрация
Восстановление пароля




+ ОПЕРАЦИОННЫЕ СИСТЕМЫ
   + DOS
      • IBM PC DOS
      + MS-DOS
         • SDK
      • DR-DOS
      • FreeDOS
      • Сборки на базе DOS
      • Расширители DOS
      • Другие платформы
   + OS/2
      • SDK
   + Windows
      + Windows 1.x-3.x
         • Патчи и дополнения к Win1.x-3.x
      + Windows 9x
         • Патчи и дополнения к Win9x
      + Windows NT
         • Патчи и дополнения к WinNT+
      • Сборки на базе Windows
      • SDK
   • Linux/Unix
   • СР/М
   • Другие операционные системы
   • Загрузочные диски
   • Готовые образы операционных систем
   • Многозадачные оболочки
   + Системные программы
      • Твикеры
      • Русификаторы
      + Утилиты
         • Оборудование
         • Работа с CD/DVD
         • Инсталляторы
         • Автоматизация, скрипты, BAT-файлы
         • Системные
         + Инструменты
            • Turbo Pascal Pentium II DIV BUG fixing
         • Прочее
      • Замедлители
      • Тесты оборудования и системы
      • Обновления
   + Драйверы
      • Звук
      • Видео
      • Мыши
      • CD/DVD
      • Клавиатура
      • Принтеры
      • USB
      • Сеть
      • Память
      • Материнские платы
      • Периферия
      • Другое
   • OS BuildList
+ ЭМУЛЯТОРЫ И СИМУЛЯТОРЫ
   • Консоли
   • Эмуляторы компьютеров
   • Инструменты для эмуляторов
+ ПРОГРАММИРОВАНИЕ
   + Assembler
      • Disassembler
   • Pascal/Delphi
   • C/C++
   • Basic/Visual Basic
   • Фортран
   • SDK & DDK, etc.
   • Декомпиляторы
   • Форт
   • Генераторы блок-схем
   • Лисп
   • Пролог
   • Java
   + Отладчики программ (DEBUGGERs)
      • Трассировщики
   • Другие языки программирования
   • Справочники и учебники
+ BIOS, прошивки
   • Прошивки
   • Редакторы BIOS
   • Прошивальщики
+ ДИСКИ И ФАЙЛЫ
   • Файловые менеджеры
   • Каталогизаторы
   • Копировщики
   • Поиск файлов, текста, байтов
   • Сканирование каталогов
   • Архиваторы
   • EXE-упаковщики
   • EXE-распаковщики
   • Восстановление информации и резервное копирование (бэкап)
   • HDD-утилиты
   • Дискеты
   • Разное
• СУБД
+ ОФИС
   • Интегрированные программные пакеты
   • Издательские системы
   • Электронные таблицы
   • Редакторы текста
   • Редакторы HTML
   + Утилиты для работы с текстом
      • OCR - распознавание текста
      • Просмотр документов
      • Печать
      • Перекодировка
      • Сравнение текстов
      • Шрифты
      • Работа со шрифтами
   • Словари и переводчики
   • Правописание
   • Органайзеры
   • Создание презентаций
   • Бизнес
   • Разное
+ ОБРАЗОВАНИЕ И НАУКА
   + Информатика
      • Программирование
   + Инженерное ПО
      + Расчётные задачи
         • Пар и вода
      + ЧПУ
         • ЧПУ Редакторы
         • DNC
      + САПР
         + Механика - моделирование 2D/3D
            • AutoCAD и утилиты для AutoCAD'а
         • Строительство
         • Электроника, радио- и электротехника
   • Тестирование знаний и навыков
   + Обучающие программы
      • Музыка
   + Математика
      • Калькуляторы
      • Эмуляторы калькуляторов
   • Физика
   • Химия
   + Электроника и электротехника
      • ПЛИС, PAL
      • Справочники по электронике
      • Расчётные утилиты
      • Программаторы
      • Микроконтроллеры
   • Астрономия
   • Астрология
   • География и картография
   + Биология и медицина
      • Психология
   • История и политология
   • Лингвистика
   • Гаданье на кофейной гуще
   • Справочники разные
+ БЕЗОПАСНОСТЬ
   • Антивирусы
   • Шифры и пароли
+ ИНТЕРНЕТ И СЕТИ
   • Эмуляторы терминала
   • Браузеры
   • Почтовые клиенты
   • IM-меседжеры
   • Звонилки
   • Кодеры/декодеры UUE
   • Пейджеры
   • FTP
   • BBS и FIDO
   • Работа с СОM/LPT
   • LAN
   • Удалённое управление
   • Факсы
   • Работа с мобильными телефонами
   • Разное
+ МУЛЬТИМЕДИА
   + Графика
      • Просмотр графики
      • Редакторы графики
      • Грабберы графики
      • Конвертеры
   + Звук и видео
      • Проигрыватели (плееры) аудио и видео
      • Редакторы аудио и видео
      • Грабберы (захват) аудио и видео
      • Синтез речи
      • Конвертеры
      • Кодеки
   • Разное
+ РАБОЧИЙ СТОЛ
   • Календари
   • Часы
   • Напоминалки
   • Скринсейверы
   • DEMO
   • Программы-шутки
   • Разное
+ АНДЕРГРАУНД
   + Hack tools
      • Крякеры
      • CRK-утилиты
      • Генераторы лоадеров (Loader generators)
      • Патчи, коды
      • Детекторы
   • Стеганография
   • Шестнадцатеричные редакторы
   • Вирусы
• РАЗНОЕ
• ФЕЙКИ, ПОДДЕЛКИ, ХИМЕРЫ
• --НА УДАЛЕНИЕ
• КАК ЗАГРУЖАТЬ ФАЙЛЫ НА Old-DOS




Clock — Микро-часы для рабочего стола
ОписаниеИнформация
Крошечная программа-часы, дополнительно выполняющая разнообразные функции, значительно облегчающие повседневную работу за компьютером.

Ниже без изменений приведён текст-описание, размещённый в конце 2005 года на нескольких форумах (rsdn, vingrad, ещё где-то) и сайтах (kpnemo, mylivepage, ещё где-то), часть которых была позже реорганизована и этого текста там уже нет. Описание дополнено информацией из небольшого обсуждения на rsdn.

---

Здравствуйте!

Предлагаю свои часы, которые работают у меня уже несколько лет.
Я их понемногу усовершенствую.
В архиве есть описание и дополнительные скрин-шоты (из-за них он и вырос).

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

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

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

Мышь находится вне области графиков:
http://old-dos.ru/screens/3785/1_ClockToolbarsHidden.png

Мышь находится в области графиков:
http://old-dos.ru/screens/3785/2_ClockToolbarsShown.png

См. также дополнительные скриншоты:
http://old-dos.ru/index.php?page=screen&do=list&cat=3785&id=1

Кратко
------

Кроме отображения времени они выравнивают панели с кнопками (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 C:\Z, что увеличивает рабочее пространство (и скрывает ненужные для пользователей кнопки).

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

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

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

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

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

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

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

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

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

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

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

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

REGEDIT4

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


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


P.S. Чтобы завершить работу программы часов необходимо щёлкнуть на них левой кнопкой мыши и нажать Alt+F4.

P.P.S. Небольшое обсуждение на rsdn: http://rsdn.ru/forum/src/1488374.flat

Раздел: Часы


Скриншоты
Операционная система: Windows
Требования: -
Автор: SergeCpp
Издатель: -
Обсуждение на форуме

Добавил: SergeCpp (2013.06.29)
Доступные файлы - сортировка по имени и версии, времени добавления
Файлов: 7.
ФайлРазмерВыпускВерсияЯзыкКачествоЗагрузил
Ссылка ClockExe[!]
ArcСкачать652
16.9 Кб2010.10.19 Мультиязычный (русский)[100%]SergeCpp
2013.06.29
Ссылка ClockSrc[!]
ArcСкачать436
26.5 Кб2010.10.19 Мультиязычный (русский)[100%]SergeCpp
2013.06.29
Ссылка ANACLOCK
ArcСкачать439
27.7 Кб1996.01.01  Английский[100%]SergeCpp
2013.06.29
Микро-часы — развитие и дополнение двух программ Ч. Петзолда: ANACLOCK и DIGCLOCK — программ-примеров к седьмой главе его двухтомника "Программирование в Windows 95". Эти программы есть на прилагающейся к русскому переводу дискете, с которой они и взяты для размещения на old-dos.
Ссылка DIGCLOCK
ArcСкачать430
16.1 Кб1996.01.01  Английский[100%]SergeCpp
2013.06.29
Микро-часы — развитие и дополнение двух программ Ч. Петзолда: ANACLOCK и DIGCLOCK — программ-примеров к седьмой главе его двухтомника "Программирование в Windows 95". Эти программы есть на прилагающейся к русскому переводу дискете, с которой они и взяты для размещения на old-dos.
Ссылка Inject[!]
ArcСкачать399
5.6 Кб2005.02.03 Мультиязычный (русский)[100%]SergeCpp
2013.06.30
Исходные тексты программы, осуществляющей загрузку часов в адресное пространство процесса Explorer.exe.

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

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

Ссылка Clock_NEW
ArcСкачать419
48.8 Кб2013test000Мультиязычный (русский)[Не подделка]Nika
2013.07.11
SergeCpp,
Test this on your systems, please. (У вас должно работать всё как и прежде. Но в таком варианте выравнивание окон в эксплорере работает у меня на всех системах нормально).
Ссылка Clock_NEW
FileСкачать391
49.4 Кб2015 may 15test001Мультиязычный (русский)Подделка x1Nika
2015.05.17
Добавлена реакция на наличие панели задач (TaskBar) при выравнивании панелей Эксплорера и окна CMD.

Пожаловаться

Комментарии
#1 Автор: Rodegast (2013.06.29 22:29)
> Выпуск: 2010.10.19
> Операционная система: Windows

Зачем оно нам надо?

#2 Автор: Nika (2013.06.29 22:41, изменений: 2, 2013.06.29 22:49)
Это модификация (существенная) примера программы из книги классика программирования для Windows 95:

1)
>>Часы имеют началом часы с дискеты к книге-двухтомнику Петцольда про Windows (и в книге про них есть).
>>Если найдёте, можете сравнить и попробовать найти 2-3 оставшиеся оригинальные строки.

2)
>>Выпуск: 2010.10.19
Это дата ПОСЛЕДНЕГО изменения.

3)
Просто удобная вещь. Есть сорс.

#3 Автор: SergeCpp (2013.06.29 23:02)
Вот я поэтому и сомневался.

Rodegast, почитайте отсюда: http://old-dos.ru/index.php?page=files&mode=files&do=show&id=3780#5093

#4 Автор: SergeCpp (2013.06.29 23:03)
У меня где-то дискета есть та, если найду, выложу их сюда тоже. Сравнить-посмотреть.

#5 Автор: SergeCpp (2013.06.29 23:05)
Да, скриншот вижу, спасибо!

#6 Автор: SergeCpp (2013.06.29 23:55)
Сейчас в библиотеку всю дискету размещу.

#7 Автор: SergeCpp (2013.06.30 00:12)
Дискета: http://old-dos.ru/index.php?page=lib&do=show&id=65

#8 Автор: Nika (2013.06.30 01:20)
SergeCpp,
а не лучше ли так?:
--------------------------------
Clock ANACLOCK ... ... ....
Clock DIGCLOCK ... ... ....
Clock(EXE) ... ... ....
Clock(SRC) ... ... ....
--------------------------------

#9 Автор: SergeCpp (2013.06.30 01:30)
Нет-нет, пусть будет именно так, как я назвал.

Мои архивы с таким именем и на rsdn и ещё есть где, с 2005 года.

А Петзолд так именно назвал свои примеры, пусть будет именно и точно так.

===

Ужас, я думал по старой памяти, хоть как-то похоже, а там совсем уж другое всё.

#10 Автор: Nika (2013.06.30 02:10)
А сейчас я вспоминаю - мелькнула и у меня тогда мыслишка повозиться с теми CLOCK'ами,
думал слепить одну из этих двух - DIGI- и ANA- для начала, но было много другой работы.

#11 Автор: SergeCpp (2013.06.30 02:57)
Часы-то -- игрушка, зато позже, когда в очередно-тысячный раз выравнивая какие-то окна проводника, я подумал, что было бы хорошо... часы и подвернулись, как "сервер, на котором необходимые действия выполняются".

Double-explorer на скриншоте ведь удобен, согласитесь. Закрыл один -- всё само выровнялось. Открыл новый -- опять рядом поставились. И full-row select -- очень ведь удобен.

Инжектирование, кажется, схожее с Рихтером у меня, хотя там что-то (как всегда) уточнялось-изменялось. А может и не Рихтер. Хорошо было без интернета, один источник был из приближённых к реальности - msdn, он и читался вдоль и поперёк.

Как и в редакторе ME, я тут позабыл уже много, хоть и файлов-то немного.

#12 Автор: SergeCpp (2013.06.30 13:00)
...инжектера-то тут и нет, а я и позабыл об этом совсем, сейчас примусь искать...

#13 Автор: SergeCpp (2013.06.30 16:31)
В микро-часах есть возможность включить внутреннюю диагностику — отображение в заголовке Проводника числа тактов процессора, потребовавшегося для выполнения разных операций.

Диагностика включается в реестре (часы необходимо перезапустить):
[HKEY_CURRENT_USER\Software\Serg\Clock]
"CPU" = dword:1

Диагностика в режиме минутных часов:
http://old-dos.ru/screens/3785/A_ClockCPUTicksMinutes.png

Диагностика в режиме секундных часов:
http://old-dos.ru/screens/3785/B_ClockCPUTicksSeconds.png

Timer: Вся работа часового механизма (только "идущие часы")
Fit: Симметричное, по центру, размещение цифр в окне часов
Paint: Отображение часов на экране

Back: Вся работа механизма настроек (и размещения) окон системы (проводник, консоль, etc)
Perf: Работа по отображению графиков: http://old-dos.ru/screens/3785/1_ClockToolbarsHidden.png
Hide: Работа по определению, стоит ли показывать или скрывать панели с кнопками (Tool Bars) и, соответственно, по их показу или скрытию

===

Графики обновляются каждые 2 секунды, при ширине часов по умолчанию (123 пиксела) получается, что график вмещает 4 минуты.

#14 Автор: Nika (2013.06.30 17:01, изменений: 1, 2013.06.30 17:16)
SergeCpp,
под WinXP и Win98 диагностика не работает.
Правда, я не включал "..specific" в .reg-файле.
Будет время - разберусь.

#15 Автор: SergeCpp (2013.06.30 17:52, изменений: 1, 2013.06.30 17:53)
А открытый проводник у вас минимизируется после некоторой его неактивности? Он, вообще, настраивается часами? Кномка "максимизировать" неактивной должна стать, появиться full-row-select и т.д.

У меня на всех машинах диагностика работала.

Вы часы перезапустили?

#16 Автор: SergeCpp (2013.06.30 18:07)
Философское о программировании
------------------------------

Есть привычное мнение, что всякие "необычности", которые нам позволяет язык программирования — лишь развлечения для и должны оставляться в стороне при написании программы.

Одна из таких "необычностей": num[ 5 ] — то же самое, что и 5[ num ]

Обобщённо это выражается так: array[ index ] — то же самое, что и index[ array ]

В микро-часах есть использование (причём двухуровневое) этой необычности, которая пришлась как раз к месту:
http://old-dos.ru/screens/3785/C_ClockDevelopmentArrays.png

#17 Автор: Nika (2013.06.30 19:21, изменений: 1, 2013.06.30 19:24)
SergeCpp,
думаю, что этот цирк a[i]=*((a)+(i))
срабатывает до тех пор, пока (в данном случае) size(a)==size(i).
То-есть, размер указателя на DWORD равен размеру INT.
И всё равно - придётся отключать WARNING'и.
И всё равно же я такого всегда избегаю, поскольку пишу для себя и экономлю "думалку", чтобы хватило на дольше.

----------------------------------------------------------
По CLOCK.EXE:
Я подозреваю, что там всё дело в опциях десктопа в реестре.
Но у меня тут маленький головнячок - из REGEDIT'a не могу изменить ничего в реестре.
("ошибка записи файла реестра") Соответственно, и из RegStudio.
Это на WinXP/SP3 (раньше такого не было).
Из других любых программ могу редактировать, а из REGEDIT'a - нет.
Воспроизвёл все последние действия под WinXP/SP2 - всё работает.
Буду разбираться... Блллин, я же уже привык к RegStudio.
----------------------------------------------------------

#18 Автор: Nika (2013.06.30 20:08, изменений: 1, 2013.06.30 20:12)
Восстановил реестр. Всё работает. Что это было - никому не понять...

CLOCK.EXE - не работает с эксплорером вообще.
То-есть, никакой разницы между запущенным эксплорером с CLOCK.EXE и без него.

#19 Автор: SergeCpp (2013.06.30 20:54)
Под "size( a )" вы имели в виду sizeof( a )? Ведь sizeof( массива ) обычно не равен sizeof( элемента массива ). Про "цирк" написано в стандарте и почти в любой книжке, и в C FAQ тоже: http://www.lysator.liu.se/c/c-faq/c-2.html#2-9

===

А вы посмотрите какой смотрелкой (SpyXX от Микрософт, например, или тем же Process Explorer), в каком процессе проводника clock.dll находится -- в том же, в котором и тот проводник, который не настраивается часами, или в другом каком.

Тут удалённо сложно сказать.

#20 Автор: SergeCpp (2013.06.30 20:56)
Вот и в FAQ говорят, что лишь развлечение: "This unsuspected commutativity is often mentioned in C texts as if it were something to be proud of, but it finds no useful application outside of the Obfuscated C Contest".

#21 Автор: SergeCpp (2013.06.30 21:43)
Вот как у меня в ProcExp на Win Me: http://old-dos.ru/screens/3785/D_ClockProcExp.png

#22 Автор: Nika (2013.06.30 21:44, изменений: 1, 2013.06.30 21:47)
SergeCpp,
size() - это не выражение языка C. Лучше бы я написал "размер переменной a".
Немного неудачно я попытался высказать мысль, что для этого "цирка" обязательным условием является, чтобы в паре a[i] одна переменная являлась указателем, а другая - была целочисленной. Или наоборот.
То-есть, всё основано на постулате о том, что "тип INT имеет размер машинного слова".
А машинное слово уже само по себе является индексом в сегменте, который является массивом машинных слов.
Вот и получается, что индекс и то и другое. И индексируют они массивы из одних и тех же элементов.
А раз и "а" и "i" это всё равно индексы, то и выходит, что (a+i)==(i+a). То-есть, a[i]=i[a].
Уфффф....
Но уже,кстати, в HUGE модели памяти этот "цирк" может так глюкануть, что мало не покажется.

Проверю-ка я лучше процессы.

#23 Автор: SergeCpp (2013.06.30 21:48)
Ещё попробуйте при запущенных часах запустить консоль (cmd-winnt или command-win98) и переместить её мышкой так, чтобы она частично была за экраном. Часы должны переместить консоль обратно в экран.

#24 Автор: SergeCpp (2013.06.30 21:52)
Так это же по определению этой хитрости: массив и индекс. Да и целочисленной -- отчего же? Работает и при массиве байт.

#25 Автор: SergeCpp (2013.06.30 21:56)
В стандарте же всё развёрнуто, посмотрите.

#26 Автор: Nika (2013.06.30 22:09)
WinXP/SP3:

1)
Консоль с CMD или FAR+CMD - ведёт себя как вы и описали.

2)
В списке процессов нет "инжектора" CLOCK.EXE.
А CLOCK.DLL присутствует в списке загруженных эксплорером библиотек.

#27 Автор: SergeCpp (2013.06.30 22:11)
Так с чего бы clock.exe где-то быть? Разве о таком говорилось? Посмотрите его код -- он инжектирует clock.dll в explorer.exe и завершается.

#28 Автор: SergeCpp (2013.06.30 22:15)
А проводник подвигайте аналогично -- восстанавливает? В Виндовс 98 тоже. Если не восстанавливает -- не находит окно.

#29 Автор: Nika (2013.06.30 22:19)
Explorer -не восстанавливает.

>> -- не находит окно.
В этом всё и дело, видимо.
В WinXP/SP2 в S-ICE команда "HWND" тоже не отрабатывает, выдавая ошибку:
"Can't find desktop window...".

#30 Автор: SergeCpp (2013.06.30 22:21)
Причём тут desktop?

А Вин 98?

#31 Автор: Nika (2013.06.30 22:30)
"desktop" - это первое окно в цепочке.
Если не найдено оно, то и другие найдены не будут.

В Win98 - всё абсолютно аналогично тому, как в WinXP (и SP2, и SP3).

#32 Автор: Nika (2013.07.01 01:24)
SergeCpp,
пока что выяснилось следующее:

1)
Функция CPU() отрабатывает как положено, раз в ~2 секунды. Причём по полной (Опция "CPU"=1).

2)
Процедура выравнивания окон эксплорера тоже отрабатывает по полной , раз в ~2 секунды:

/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
void Cabinets()
{
.HWND hPrv( NULL );
.....while ( HWND hCabinet( FindWindowEx( NULL, hPrv, "CabinetWClass", NULL ) ) )
.....{
......PaneView( hCabinet );
......hPrv = hCabinet;
.....}
}
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\

Причём, если раскрыто два окошка в эксплорере, то и PaneView() отрабатывает дважды.
Если одно окошко, то единожды. И ни разу, если нет открытых окон эксплорера.
В общем - лажа в этой функции PaneView( hCabinet ).
Однозначно.

#33 Автор: Nika (2013.07.03 08:07)
SergeCpp,

/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
HWND SysListView( HWND hList )
{
...... ..."".....
...... ..."".....
...... DWORD StyleCurr( GetWindowLong( hList, GWL_STYLE ) );
...... if( ( StyleCurr & LVS_TYPEMASK ) != LVS_REPORT )
...... {
*WE HERE!*
.......... return hList; // do not adjust this view
...... }
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\

Вот так и не отрабатывает PaneView() для окошка эксплорера...

#34 Автор: SergeCpp (2013.07.03 18:39)
1) А вы почему, говоря о ВЫРАВНИВАНИИ окон проводника, указываете на функции, не имеющие к ВЫРАВНИВАНИЮ окон проводника никакого отношения?

2) SysListView - правильно. Почему вы не смотрите в msdn, чтобы уточнить, ЧТО ИМЕННО в этом сравнении делается?

3) Про index[array] - если есть сомнения, напишите две строки в main (с самой большой моделью памяти дос) - так и обычно и посмотрите, какой ассемблерный листинг на выходе компилятора. Можно ещё в отладчике пройти.

#35 Автор: Nika (2013.07.03 22:44, изменений: 2, 2013.07.04 00:21)
1)
"Хватаю по верхам". Привык писать комментарии и верить комментариям.
Если написано "// do not adjust this view" - подозреваю, это то, что мне было нужно.
Системы, в которой бы всё работало, для сравнения, у меня нет.
Код не компилировал, глядел в S-ICE.
Времени у меня на это всё сегодня было 20 минут утречком вместо зарядки.

2)
SysListView - да, придётся смотреть...

3)
Экспериментировал с "цирком" очень давно. Тогда же пришёл к выводу, что не стОит такого делать.
Достал когда-то-шнюю свою учебную программульку - там я это делал для массива float и double.
И для всех моделей памяти (t,s,l,h).

#36 Автор: SergeCpp (2013.07.04 00:36)
1.1. Я очевидно же про ваше упоминание Cabinets, где вы явно сказали "выравнивания", причём тут в ответе ваше упоминание комментария adjust, где нет ваших слов о выравнивании?

1.2. View - не окно, так что комментарий - верный.

1.3. Вы действительно не заметили функцию с явным названием ExplorersPosition?

*** Вообще, мне крайне непонятно, к чему все эти "шпильки" с многоточиями, "привык верить комментариям" и подобным? Вы не хотите, чтобы я вам отвечал (вдобавок ещё при очевидной вашей невнимательности)? Оставляю за собой право не отвечать далее на комментарии с этакими "колкостями".

2. Разумеется.

3. В ближайшее время нет возможности посмотреть (а не в ближайшее - компилятора нет установленного), что там - неужели нарушение симметрии, декларированной стандартом?

#37 Автор: Nika (2013.07.04 00:59, изменений: 1, 2013.07.10 06:21)
1.х)
Просто у меня в данный момент жутко много дел навалилось - некогда засесть всерьёз.
А впопыхах всё равно ничего путного не бывает.

3)
В том-то и дело, что и с "плавющими" типами данных в массиве "цирк" тоже работает.
Хотя не должен бы.

Что касается установленного компилятора, то для ТС/BC/QC я их никогда не "устанавливаю".
Использую распакованные из архива и уже настроенные версии для ДОС.
То же самое - и для BCPP5/MCVC2/MSVC6.

Например, попробуйте BC++3.1, это похоже на то, чем и я пользуюсь:
http://old-dos.ru/index.php?page=files&mode=files&do=show&id=138


#38 Автор: Nika (2013.07.08 02:40, изменений: 1, 2013.07.08 03:01)
SergeCpp,
перетранслировал CLOCK.DLL с MSVC++6.0.
В функцию ExplorersPosition(..) приходит всегда hExp1==hExp2==0
(и тогда в ней ничего не отрабатывает).
А hExp1==hExp2==0 перед этим вернула функция Explorer(),
в ней сработало (оба раза) условие:
-----------------------------------
if( busy || ++look ) return NULL; // desired ord'ed Explorer not found
-----------------------------------
(busy==0 , а look == 1 или 2)
и в этот момент hExpWnd в ней был равен NULL.



#39 Автор: SergeCpp (2013.07.09 03:00)
Значит в вашей системе другие имена классов окон, посмотрите в Spy. Я помню точно, что работало у меня в NT4, Me, 2k. Скорее всего и в 98 (это давно было, поэтому "скорее всего").

Хотя странноe look. Если оно по входу (0, 1), то после инкремента и перед выходом оно не более тех же (0, 1). А как это оно получается аж 2?

Ну и, вот я сейчас в NT4 - два Explorer открыл, они разместились, как на скриншоте.

#40 Автор: SergeCpp (2013.07.09 03:03)
Ага, ясно, как (1, 2) - окно не находится или занято.

#41 Автор: SergeCpp (2013.07.09 03:42)
Вообще, так как вы - программист, то я от вас с самого начала ожидал самостоятельного разбора этой интересной ситуации. И очень удивляюсь, видя ваши вопросы-замечания крайне начального уровня (при одновременном же владении отладчиком, что говорит о уровне заметно выше).

Признавайтесь - это всё вы просто для "поговорить, поддержать тему"? :)

#42 Автор: Nika (2013.07.09 08:09)
Да, уровень низкий.
Поддержать тему - видимо, нужно притормозить.
Страница уже и так переполнена комментариями.
Программка никуда не денется. Выберу время и разберусь.
Если что-то путное получится - выложу.

#43 Автор: SergeCpp (2013.07.10 02:53)
Если система XP и новее, то могут иметь влияние нововведения, рассмотренные Рихтером - объект "Задание" (Job) и сопутствующие мелочи. Когда я писал, систем таких не было (или были, но я на них не работал).

#44 Автор: SergeCpp (2013.07.18 20:14)
Nika, я только что увидел ваш файл, посмотрю позже.

#45 Автор: Nika (2013.07.27 16:08)
SergeCpp,
надеюсь, что у вас всё в порядке.

#46 Автор: SergeCpp (2013.07.31 23:34)
Nika, я посмотрел, наконец (прошу извинить, я в основном off-line).

Как я и говорил ранее, дело - в именах классов.

Но! Необходима доработка в этом новом поиске! Обратите внимание, что имя этого класса, которое вы ищете, есть ещё в одной функции. И то, что у вас сейчас - работает иначе, не так, как задумано. Cabinet - это, например, то окошко, что открывается при выборе Open на одной из папок в Explorer. С вашим изменением такое окошко определяется как Explorer, а такого быть не должно, это именно окошки "свободного размера" (могут и другие быть, я уже сейчас не помню).

#47 Автор: Nika (2013.08.01 01:50, изменений: 3, 2013.08.01 02:12)
SergeCpp,
да, я видел использование того имени в cabinets() (В том же BACK.CPP).
Штука вся в том, что у меня при запущенном Explorer'е не наблюдается
ни одного окна с именем класса "ExploreWClass".
А при запуске Explorer'а появляется окно с именем класса "CabinetWClass".
Его я и ищу. Других просто нет.
(Насколько я знаю, Cabinet - это тот урезанный вид, который появляется при запросе имени файла и т.д.).
Так или иначе, я уже привык к автоматически раскрывающемуся окну Explorer'а -
действительно, удобная штука получилась. Ну, и часики ещё к тому же.

У меня настройка при "open" - "открывать в том же окне", поэтому, наверное, всё так.
Попробую...
...Попадаю в день к машине на пол-часа.

#48 Автор: SergeCpp (2013.08.02 05:43)
Да, эта постоянная произвольность в координатах и размерах Проводника (да и вообще оконной системы как таковой), довольно серьёзно вредит, причём случайное движение мыши способно нарушить то, что точно (и долго) настраивалось.

В дос большое преимущество в этом плане именно из-за дискретности 25 на 80 (я об этом говорил в теме про редактор).

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

Эти часы - частичное решение проблемы. Плюс ещё решена (панельками-графиками) проблема иконок на рабочем столе, которые: 1) для запуска нужно нажимать мышкой дважды; 2) при этом очень легко их сдвинуть; 3) чтобы их увидеть, нужно минимизировать или сдвинуть закрывающие их окна; 4) их может быть много (на панельках, если иконок много, появляется внизу "полоска", а там можно организовать и каталоги иконок, я так делал); 5) что-то ещё, что я уже не помню.

Те же консоли - ведь удобно же стало.

А к графикам профессор/память/чтение/запись я уже так привык за более чем десять лет с ними, что без них уже совсем невозможно. Да и всегда видно ведь, что происходит в системе. Сеть (приём/передача) я тогда не сделал (не было сети), а сейчас - вряд ли возьмусь. Ну да это легко - вся инфраструктура для добавления новых графиков есть, кто и добавит. Те мониторы, что я видел, или чересчур громоздки (во всех смыслах) для постоянной работы или совсем неудобны.

Наблюдение. Системный монитор NT - perfmon был с исходниками, я ужаснулся, как там графики рисуются: 1) неточно; 2) затратно. Там, насколько помню, "DrawLine вбок" используется. А при разнице горизонтальных координат в 1 пиксел получается ужас. Это, конечно, "не видно", так как общие контуры верны, а на производительность тоже "особо не влияет". Эх. Хотя то, что они не двигают весь график, а только "вертикальную полоску" - это им в большой плюс. Я так же сделал (заодно и таймер на 4 минуты вышел - пока "полоска" по всему графику пройдёт).

Вот такая история.

#49 Автор: Nika (2013.08.02 08:33, изменений: 1, 2013.08.02 08:35)
SergeCpp,
простите, но я так и не понял механизма этих графиков.
Они у меня не запускаются.
Им ведь необходимы уже определённые раскрытые по умолчанию окна Проводника?
(как в Win3.x)?

#50 Автор: SergeCpp (2013.08.02 09:38)
Перечитайте вверху в описании, начиная с "кроме отображения времени" (и две ссылки-скриншота - чуть выше этого текста). Ну и исходники есть же. Панельки нужны, те, что на скриншотах. Всё в описании написано.

Да, ещё очень удобно вышло full-row-select: и в дереве и в списке. Хотя бы даже мышкой выделять удобнее стало.

#51 Автор: Nika (2013.08.02 11:40, изменений: 2, 2013.08.02 15:27)
Фу-ты...
SergeCpp, спасибо. Невнимательность...

#52 Автор: SergeCpp (2013.11.27 16:40)
Nika, а под семёркой панели с кнопками создать можно? Работают? (У меня семёрки и новых систем нет.)

Было бы супер, если бы можно было скриншот тоже в Скриншоты поместить. Пожалуйста, если, возможно.

А то вот тут тема образовалась: http://forum.ixbt.com/topic.cgi?id=23:44359

#53 Автор: SergeCpp (2013.11.27 16:47)
Копирую из комментария кое-что неочевидное:

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

#54 Автор: Nika (2013.11.27 21:42, изменений: 8, 2013.11.28 21:40)
SergeCpp,
((( рад бы протестировать под Win7, но.. все Win7-32/64 остались на прежнем месте работы, откуда я ушёл...
А когда тестировал, не проверял эту опцию, потому как впопыхах, всё равно на чужой машине.
Зато сейчас у меня на работе компьютера нету вовсе. Потому как на кой он ...
Гаплык. И ещё минус час времени дома /в день (было 2). И минус по з\п (и было-то по бюджетной сфере)...
Я спокоен. Я абсолютно спокоен. "Нехай гірше - аби інше".

#55 Автор: SergeCpp (2013.11.27 22:37)
Ага, будем надеяться, что в будущем кто-нибудь желающий проверит эту возможность.

#56 Автор: SergeCpp (2014.01.22 05:26)
Небольшая беседа по теме: http://old-dos.ru/index.php?page=files&mode=files&do=show&id=4203

#57 Автор: SergeCpp (2014.07.03 04:49)
Вот и Inject пригождается сам по себе: http://rsdn.ru/forum/winapi/5672110.flat

#58 Автор: SergeCpp (2018.01.15 23:49)
Перенёс в раздел "РАБОЧИЙ СТОЛ >> Часы" (было в "РАБОЧИЙ СТОЛ >> Разное").

#59 Автор: Nika (2018.02.04 20:31, изменений: 1, 2018.02.04 20:32)
SergeCpp,
а нет ли планов портировать Clock в x64?

#60 Автор: SergeCpp (2018.02.04 20:53)
Nika, нет. (Там макросы в me7 забрали? Сегодня выложил.)

#61 Автор: Nika (2018.02.04 21:13, изменений: 7, 2018.02.04 21:24)
Забрал, спасибо (1 скачивание - то от меня и было).
Но как-то у меня с 7-й версией дружбы не выходит,
примочки для неё просто приходую на склад. Захомячиваю.

ME Lite 1.00i (ME v.6 Lite) использую сейчас в основном для всяких тупо манипуляций
с текстом листингов или дампов, его функцию записи "кейстроков".

Для работы с текстами программ сейчас уже ориентируюсь только на THE
и на MEL v.11.04.00(Win32), рассказывал о нём - там тоже запись последовательности
нажатий на кнопки работает вполне нормально.

А с часиками - у меня на работе завелась Win7/x64, по необходимости,
(- нужный софт в WinXP/x32 просто не работает,) - так ощущаю нехватку этих часов,
больше даже их функции автоматического разворачивания/выравнивания окон.
Сам в x64-программирование не лезу, домашний ноут с такой возможностью сгорел пару лет назад,
сейчас дома есть только 32-битные машины. А на работе ковыряться с этим просто нереально.

#62 Автор: SergeCpp (2018.02.04 21:38)
С этими окнами ещё бы нечто такое сделать, как я в Студии сделал (ОЧЕНЬ удобно), но за это уже не возьмусь я.

Тут вот кратко описано: http://rsdn.ru/forum/tools/3972574.flat
На сайте макросы тоже я размещал: http://old-dos.ru/index.php?page=files&mode=files&do=show&id=2693

Имя:
E-mail:
 =
Ваш комментарий:
Эх, жизнь моя hardware!

For abuses about copyright: srzone@mail.ru
Для жалоб на авторские права: srzone@mail.ru
Float 1.0.3 Copyright © 2008-2023 StrannikRiddler. All rights reserved.
18+. Находясь на этом сайте, вы соглашаетесь с его правилами
10 queries, db time 0.003419, memory 1579.53 Kb, total time 0.054 sec