Linda-chan
Оказалось, что в Windows Neptune (которая – провалившаяся попытка сделать Windows 2000 Media Center Edition) уже можно использовать полноцветные иконки в трее.
Linda-chan
Оказалось, что в Windows Neptune (которая – провалившаяся попытка сделать Windows 2000 Media Center Edition) уже можно использовать полноцветные иконки в трее.
Linda-chan
Оказалось, что Windows ME таки позволяет в трее использовать полноцветные иконки. А я и не знала, ведь в MSDN это, вроде как, никогда не документировалось, а ME у меня никогда не было даже на виртуалке. Судя по тому, что вышла она позднее Windows 2000, фича не попала ни в изначальный релиз, ни в сервиспаки.
Linda-chan
Windows XP была первой системой, позволившей в трее использовать иконки выше шестнадцати цветов. В Windows 2000 такого всё ещё было нельзя, хотя казалось бы.
Linda-chan
Есть очень специфический компьютер, на котором загрузка возможна только с единственного накопителя. Тоесть, ни второй диск, ни флэшка, ни сидюк, ни флоповод не работают в качестве загрузочного устройства. Нужно водрузить туда Windows 2000. Если поставить винду на другом компьютере и вернуть диск, то происходит BSOD 0x0000007B. Предлагайте ваши предложения.
Linda-chan
Расширение для Проводника, возвращающее человеческую информацию о версии файла.
https://www.codeproject.com...ion-Tab-Shell-Extens
Linda-chan
Дропнула (с тяжёлым сердцем) поддержку Windows 95 в своих программах. Если рантайм FreeBasic починят – верну.
Linda-chan
Windows 3.1 had configuration options to let you change the color of the blue screen messages. I dimly recall being told that the critical error message was originally red, but it was changed to blue for readability, as well as to make it less dramatic. My guess is that Windows 3.1 left an escape hatch in case they needed to change the color again.
https://devblogs.microsoft....0220201-00/?p=106209
Less dramatic.
Linda-chan
Заметила странность с DLL, собранными FreeBasic, в Windows 95. Допустим, у нас есть библиотека на FB, есть программа на VB6, которая её использует. Запускаем программу, она грузит библиотеку, всё хорошо. Теперь делаем ActiveX DLL на VB6, которая использует библиотеку, регистрируем через RegSvr32 в Windows 95. RegSvr32 грузит библиотеку, та грузит свои зависимости, в том числе FB библиотеку, а потом RegSvr32 получает от LoadLibraryEx() ошибку 0x45a. Даже если просто сказать RegSvr32 регистрировать FB библиотеку, то будет та же ошибка. Не понимаю, что происходит. В Windows 98 работает без проблем.
Linda-chan
«COM, DCOM, OLE. Всё это разные лица одного ануса. Тоесть Януса».
Linda-chan
Говорят, что шутники поначалу «NT» расшифровывали как «Nice Try».
Linda-chan
RtlTimeToSecondsSince1970
Converts the specified 64-bit system time to the number of seconds since the beginning of January 1, 1970.
https://docs.microsoft.com/...metosecondssince1970
Remember, no Unixian.
Linda-chan
Ранее я писала, как Win16 выдавала мне страшное сообщение об ошибке при попытке вызвать функцию из не найденной DLL в VB3. Я подумала и нашла источник проблемы. Есть в Windows такая функция SetErrorMode(), которая устанавливает глобально для задачи (процесса в Win32), как будут обрабатываться некоторые ошибки. Например, можно сказать, чтобы при возникновении необработанного исключения программа просто схлопывалась и не выдавала никаких «Память не может быть read». Есть там флаг SEM_NOOPENFILEERRORBOX, который именно на это и отвечает. Если установить его для задачи, то выдача страшных сообщений прекратится, пользователь не будет знать, что программа чего-то не нашла, а программа сама будет действовать альтернативно. Собственно, после установки этого флага, сообщения прекратились. А в Win32 он вроде как установлен по умолчанию (хотя, документация говорит обратное), но, как мне показалось, даже если его сбросить, никаких сообщений не появится.
Linda-chan
There is a horrible non-obvious quirk of the AdjustTokenPrivileges function that is tripping us up: The function returns success even though it may have failed to do what you asked.
The function “succeeded” in the sense that it successfully attempted to adjust the privileges you requested, and it successfully reported the result of the adjustment attempt. But that doesn’t mean that the attempt actually accomplished what you asked it to do.
Linda-chan
В Windows 3.xx, если VB3 программа пытается вызвать функцию из отсутствующей DLL, появляется то самое системно-модальное окно сообщения, поясняющее, что данной библиотеки не найдено. После этого (если не установить обработчик ошибок) уже VB рантайм вываливает ошибку «File not found» и схлопывается. В принципе, это происходит и при запуске такой программы в NT и 9x. А вот в VB6 такой фигни нет.
Linda-chan
У MessageBox() есть ещё один прикольный флаг – MB_SYSTEMMODAL. В Win32 он ничего заметного не делает (документация говорит, что окно сообщения появляется поверх всех окон, что эквивалентно MB_TOPMOST), зато в Win16 показывает окно сообщения, которое блокирует всю систему пока не нажмёшь на кнопку. При этом, если не указать флаг иконки или указать MB_ICONSTOP, то показывается простейшее окно фиксированного размера, без заголовка (текст заголовка пишется отдельной строкой), с текстом шрифтом System и кнопкой. Такое окно рассчитано на ситуации, когда системные ресурсы закончились, система не может даже окно нормально нарисовать, но сообщение показать всё равно нужно, и делается это минимальными средствами. Если же указать другую иконку, то показывается обычное окно сообщения, только с одинарным бордюрчиком и без возможности окно это перетаскивать. Система при этом всё равно блокируется. Ещё одна интересная особенность заключается в том, что в Win9x приложения Win16 могут показывать такое окно с полной блокировкой системы, а Win32 приложения – нет. В NT даже Win16 приложения не могут заблокировать систему.
Linda-chan
В Windows есть функция MessageBox() сотоварищи, которая выводит окно с сообщением, иконкой и набором кнопок для реакции пользователя. Для выбора иконки есть следующие флаги:
• MB_ICONHAND – выводит красную фигню с крестиком, типа, сообщение об ошибке.
• MB_ICONQUESTION – выводит фигню с вопросительным знаком.
• MB_ICONEXCLAMATION – выводит фигню с восклицательным знаком, типа, предупреждение.
• MB_ICONASTERISK – выводит фигню с буквой «i», информация.
В глаза бросается некое несоответствие названия констант тому, что они показывают. Более того, у MB_ICONHAND есть вносящий ясность псевдоним – MB_ICONSTOP. Что такое? Почему так? Дело в том, что названия констант говорят о том, что показывало окно сообщения в самой первой версии Windows. Тогда вместо креста при ошибке показывалась поднятая рука, а вместо буквы «i» – «*». В Windows 3.x руку посчитали неинтересной и стали показывать знак «Движение без остановки запрещено», и у константы появился «псевдоним», отразивший новые реалии. Та же фигня и со звёздочкой: появилась буква «i», и константа начала называться MB_ICONINFORMATION. В Windows 9x и NT4 иконки снова обновили, вместо знака появился крест, и авторы решили перейти от формы к содержанию, добавив псевдонимы MB_ICONERROR и MB_ICONWARNING. Получилась занятная капсула времени.
Linda-chan
2018-10-18 – non win 10 1803 are not "most systems" anymore (martin) – Diff vs. current • Diff vs. previous
Linda-chan
Ахаха, сама себя обманула. NT4 знает о подписи, просто я забыла, что смотрю свойства билда без подписи (идёт работа, так сказать). Для других файлов Проводник показывает подпись.
Linda-chan
NT4 Server с последним сервиспаком ничего не знает о цифровой подписи екзешников. Как Windows 95. В этом отношении Windows 98 технологичнее.