← All posts tagged Windows

Linda-chan

Ранее я жадловалась на то, что у меня winlogon.exe то и дело пиликает системным звуком, когда копируешь что-либо в буфер обмена. С нового года (вот так совпало), ситуация стала печальнее: бипы раздовались то и дело в рандомные моменты времени, и не понятно было, что их вызывает. Думала, какие-то скрипты запускаются в планировщике или там где-то в своих программах забыла убрать отладочный код. В итоге всё пришло к тому же winlogon.exe. Выяснить, что же происходит, мне не удалось, но по крайней мере я нашла способ веруть тишину в систему. Вот он:
gist.github.com
REG файл устанавливает пустоту для пары системных звуков winlogon.exe. При этом делается это для текущего пользователя и для трёх системных – winlogon.exe работает од одним из них, так что я сделала так, чтобы наверняка. Да, в Windows прикольные звуки можно поставить и для всяких Local System.

Linda-chan

В Windows 98 я вырубала панель инструментов у консоли, чтобы она выглядела как в NT (и действительно, с непривычки эффект был выдающимся). В NT же время от времени хочется поностальгировать и врубить панель инструментов. Но увы...

Linda-chan

Мало кто знает (а кто знает, тот часто забывает), что при перетаскивании файла или ещё чего из, скажем, проводника в окно какой-нибудь программы, не нужно окна двигать туда-сюда, подготавливая плацдарм, можно нажать Alt+Tab чтобы переключиться на окно этой программы.

Linda-chan

Решила ещё раз попробовать Private Desktops в Windows 7 и узнать, чего она там не работает. Ну, то что Win+1 и прочие цифры забиндены Проводником на прибитые на таскбар программы, при чём скопом со всеми модификаторами (Win+Ctrl+1, Win+Alt+1 etc), я выяснила в прошлый раз. Поставила более конвенционные Win+Q для первого рабочего стола (дефолтного), Win+W для второго, перезапустила программу. Жму Win+W – переключилось. Жму Win+Q – не реагирует. Не работает переключение? Запустила екзешник программы с параметром «/Switch 0» – переключилось. Вернулась на второй рабочий стол, снова жму Win+Q. Там запущена консоль, и я вдруг заметила, что эта самая Q в ней набирается. Тоесть, хоткей не работает в принципе. Короче, если в XP глобальные хоткеи работали на всех рабочих столах в пределах текущей оконной станции (кроме рабочего стола блокировки системы), то, похоже, дальше они стали заизолированы на конкретных рабочих столах. Тоесть если на рабочем столе X программа создала окно и следом зарегистрировала хоткей с его манипулятором, то сообщения WM_HOTKEY будут прилетать только если клавиши были нажаты, пока рабочий стол X был активен. А если система переключится на рабочий стол Y, то сообщения прилетать не будут. Пичалька, придётся думать, как программу обновить. Есть вариант с хуками, но я хуки зависят от разрядности процесса, в который библиотека будет внедряться, а я пока в этом не разбиралась =_=

Linda-chan

Ну и о будущем.
(Yes, I'm being unfair and ignoring backward compatibility. In my mind, as a user, if a program requires backward compatibility it's because it's being poorly maintained and is probably not evolving with the new OS releases, and I'll vote with my feet and move on to something that keeps up with the days.)
[Translation: Every application vendor who does not issue an update to their program the same day the OS is released is a lazy bum. -Raymond]
blogs.msdn.microsoft.com

Linda-chan

А вот тут рассказывается о том, почему в Висте перестали показываться иконки Win16 программ:
docs.microsoft.com
Я знала, что народ любил всюду использовать Win16 DLL с расширением ICL (например, Microangelo так делал), но не знала, как система эти иконки использует. Думала, что там какие thunk'и, вызывающие Win16 функции, а оказалось, что просто некий велокод парсит блоки ресурсов и вытаскивает данные иконок, которые уже подсовывает Win32 функциям.

Linda-chan

Вспомнила я тут цитату про «криворучек из Microsoft, запихнувших PNG сырым потоком в ICO файлы», ну и озадачилась поиском информации на тему. В итоге нашла у Рэймонда Чена серию постов про иконки, в том числе и по интересующей меня теме:
blogs.msdn.microsoft.com
blogs.msdn.microsoft.com
blogs.msdn.microsoft.com
blogs.msdn.microsoft.com
Жаль, не раскрыта тема двух прозрачных цветов: просто прозрачного и инвертируемого, которым в старых программах увлекались. Да, это было давно, и всё же.

Linda-chan

Поставила, наконец, поц-рэди™ на XP. Набежало больше сотни апдейтов. Апгрейд найт медленно перешла в апгрейд дэй. Но в итоге вроде бы ничего не отвалилось. Версия на рабочем столе поменялась, а ещё IE8 научился ходить на сайт на Апаче под восемнадцатой бубунтой. Правда, SNI это его не обучило. И галочки «TLS 1.1» и «TLS 1.2» не появились в настройках IE, хотя в реестре всё прописано.

Linda-chan

Приступайте к ненависти.
The customer explained that their program is just fine with files that have spaces in their name, but their program is a utility program, and it is used by other programs and scripts. Those other programs and scripts have a Unix heritage, and Unix file names rarely have spaces in their name. Consequently, those programs and scripts tend to have poor support for files with spaces in their name. blogs.msdn.microsoft.com

Linda-chan

Рэймонд Чен о файловых атрибутах в Windows.
blogs.msdn.microsoft.com
Забавно, об атрибуте «Метка тома» я знала, но как-то не задумывалась, что его изъяли из Win32 API. Тоесть я с ним просто не сталкивалась, а его, оказывается, и не было. И про Win16 я тоже как-то запамятовала. Как же там файловые атрибуты получались? Oo

Linda-chan

Возросшее требование Windows XP к железу при переходе от SP2 к SP3: миф или реальность? Поделитесь своими воспоминаниями!
// А то схлестнулась тут с одним икспертом в ностальгической дискуссии, захотелось послушать мнения пойнтожуйкеров.

Linda-chan

Что сейчас рекомендует использовать Microsoft для вывода хелпа в программах?
Вот, помнится, была Windows 3.xx, а потом – NT4 и Windows 95. Там был WinHelp, к которому шла подробная документация и могучий компилятор с кучей настроек и сопутствующих утилит.
Потом пришла Windows 98, и появился HTMLHelp, к которому были куски невнятной документации и компилятор, который не мог ничего. Сама Microsoft распространяла со своими прогами CHM файлы, которые нельзя сделать штатным компилятором, как бы намекая, что некоторые равнее всех.
А теперь что? Начиная с XP хелп самой системы сделан непойми как. В одной версии так, в другой – по-другому. Сами майкрософтовские проги часто тупо показывают окно, в которое встроен WebBrowser Control с контентом то ли из Инета, то ли из кэша. WinHelp и HTMLHelp методично дропается, а вместо них...
Так что вместо них?

Linda-chan

Казалось бы, что WinAPI уходит в прошлое. Давно уже существует огромное количество кросс-платформенных фреймфорков, Windows не только на десктопах, да и сами Microsoft в свой магазин не жалуют приложения, которые используют этого монстра.habrahabr.ru
Казалось бы, колесо уходит в прошлое: давно уже существует огромное количество автомобилей!

Linda-chan

Дошли руки наконец доделать HTTPS в своём классе, использующем WinInet для получения данных из Инета. Разобралась почему у меня не работали флаги по игнорированию ошибок сертификатов (не туда пихала их). Вроде бы всё заработало. И тут... Делается запрос на HTTP, устанавливаются флаги для игнорирования ошибок, сервер возвращает 302 на HTTPS, но WinInet достаточно умный чтобы самостоятельно делать редирект. Он делает и возвращает ошибку сертификата. Как так? Вот же флаги! Поковырялась. Судя по всему, флаги сбрасываются при отправке нового запроса, и как их установить – не понятно, ведь всё происходит внутрях WinInet. И это что ли ручками обрабатывать?