@Linda-chan

Тег windows в блоге Linda-chan

Linda-chan

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

Linda-chan

Рэймонд Чен даёт ответ на вопрос тысячелетия.

When a program crashes, Windows display a message that says, in part, “Windows will close the program and notify you if a solution is available.” Did it ever find solutions?

https://devblogs.microsoft....0201201-00/?p=104498

Linda-chan

Сделала в консоли цвета как в Windows 9x. Глазам малость больно, хотя в те времена вроде норм было.

Linda-chan

Политическая программа.

Linda-chan

Сегодня я узнала, что разрешения на шаре подразумевают возможности, а не реальность. Тоесть, если для пользователя на шаре разрешено чтение, но не разрешена запись, то даже если ниже, на ФС, у пользователя будет доступ для записи, через шару он не сможет ничего записать. Но если для пользователя на шаре разрешена запись, а на ФС где-то запись ему не разрешена, то он так же не сможет ничего записать. Wiiiindows =_=

Linda-chan

I've long toyed with the idea that Microsoft could release a desktop Linux. Now I've started taking that idea more seriously - with a twist. Microsoft could replace Windows' innards, the NT kernel, with a Linux kernel.
[...]
Many of the problems afflicting Windows do not reside in the operating system's upper levels. Instead, their roots are deep down in the NT kernel. What, then, if we could replace that rotten kernel with a fresh, healthy kernel? Maybe one that is being kept up to date by a worldwide group of passionate developers. Yes, my bias is showing, but that's Linux, and it's a solution that makes a lot of sense.

https://www.computerworld.c...ld-run-on-linux.html
Очередные влажные фантазии граждан, жаждущих папку bin в Windows, прямые слэшы, UTF-8 в ANSI API и скорейшей смерти MS-DOS (cmd.exe). Особенно улыбнули гнилое ядро NT и новенькое лимонно свеженькое ядро, разрабатывающееся группой международных пассонариев™.

Linda-chan

Какая-то очередная смертельная битва на костылях.
https://www.howtogeek.com/6...indows-command-line/
Автор учит людей экзотическим методам «обхода» пробелов в именах файлов, но даёт слишком мало информации, почему что-то работает, а что-то нет. Например, важно помнить, что в Windows нет никакого «специального символа», который разделяет параметры. Командная строка передаётся процессу в виде простой строки, какая была использована при вызове CreateProcess(), а разбивка строки на параметры происходит уже силами самой программы и используемых ею библиотек. Например, можно заюзать функцию WinAPI CommandLineToArgvW(), чтобы сделать примерно то же (см. Рэймонда Чена), что делают библиотеки в Цэ. В VBScript есть объект WScript.Arguments, который красиво парсит командную строку, передаваемую WScript.EXE или CScript.EXE, ну и так далее. Именно поэтому, когда ушлые гики советуют брать в кавычки не всё имя файла, а только его часть с пробелом, может случиться конфуз, в ходе которого программа, не готовая к таким выкрутасам, скажет, что нет такого файла.

Linda-chan

Кстати.

Windows исторически ориентирована на организации, и в данном случае это отлично просматривается.

http://www.outsidethebox.ms/18895/
Вот те раз. Всю жизнь было для всех и каждого, для дома, для семьи, киношки, мультики, игры, DirectX все дела, и тут – РАЗ! – «исторически ориентирована на организации».
// Либо это такой микроспик™, который на русский переводится как: «Да, они обосрались, но не против сохранить хотя бы лицо чистым».

Linda-chan

Windows XP. Настройка обновлений → «Уведомлять, не загружать автоматически». Спокойная работа, спокойный сон, установка обновлений только в удобное время, никаких неожиданностей.
Windows 10. Огромадная простыня с кратким описанием галочек, политик, параметров в реестре, задумок Microsoft, почему эти задумки провалились, наездов на маководов, наездов на всех подряд и срачем в камментах. И это пока только теория, до практики не добрались.
Прогресс не стоит на месте.
http://www.outsidethebox.ms/18895/

Linda-chan

Вдруг вспомнила, что забыла вырубить автоматическую дефрагментацию дисков в XP, ну и пошла гуглить, как это сделать не через TweakUI (интересно же). А там – дебил-парад. На одном форуме народ срётся, кто идиоты: Гнусмус, который заявил, что их SSD настолько стремительны, что дефрагментация не имеет смысла, или Microsoft, которая заявила, что метаданные на ФС не резиновые, и если файлы будут слишком сильно фрагментированы, то могут случиться неприятные нежданчики. Рядом выяснять, Microsoft – это software vendor или всё же software developer. На другом форуме топикстартеру доказывают, что нет никакой автоматической дефрагментации, есть только prefetch, и то вряд ли (спойлер: автоматический запуск defrag.exe, очевидно, автоматической дефрагментацией не считается). На третьем предлагают удалить задачу из планировщика заданий, отмечая, что задача очень скрытая, поэтому никак её увидеть нельзя. На четвёртом у всех всё работает, а топикстартер – идиот. Но больше всего мне понравился ответ где-то на майкрософтовских форумах. Типа, я ничего не знаю о дефрагментации и о том, как её отключить, но попробуйте подождать, пока оно само собой не прекратится, вдруг поможет. Прямо чувствуется дух Ответов на Mail.ru, где иные трюкачи набивали себе рейтинг, отвечая «Не знаю» на все вопросы по списку.

Linda-chan

Зашла на Windows 7 шару из Хомеко XP, открыла свойства файла, увидела вкладку «Предыдущие версии». Как эта фича пролезла на XP? Oo

Linda-chan

cacls Byaka.exe /p Все:F

«Продолжить? (Y/N)». Да!

echo Y | cacls Byaka.exe /p Все:F

Полный игнор.

echo yes | cacls Byaka.exe /p Все:F

Та же история. Гуглим...

echo Y| cacls Byaka.exe /p Все:F

Сработало. Ахуенчик вообще! >_<
via https://stackoverflow.com/q...ile-with-auto-answer

Linda-chan

Гуглю, как использовать CommandLineToArgvW(). Натыкаюсь на статью Рэймонда Чена. Понимаю, что вечер будет томным =_=

Linda-chan

I want to write a language learning app for myself using Visual Studio 2017, C++ and the WindowsAPI (formerly known as Win32).

https://stackoverflow.com/q...d-write-utf-32-files

Linda-chan

Почти случайно узнала, что переменные окружения в Windows оказывают большее влияние на программы, чем казалось до этого. Скажем, раньше я считала, что всякие AppData, USERPROFILE, TEMP и прочие приходят откуда-то из внутренностей системы и отражают то, что там творится. И если их значение поменять, то на системные функции вроде SHGetSpecialFolderLocation() и GetTempPath() это не отразится. Однако, это не так: эти функции возвращают значение исходя из значения переменных. Так что модифицировать их значения нужно осторожно: можно, например, поменять путь к каталогу Windows и сделать невозможным запуск дочерних процессов. Кстати, прикол. В Windows есть две переменные, содержащие путь к временному каталогу: TEMP и TMP. При модификации первой GetTempPath() будет возвращать старое значение. Зато значение второй пойдёт в результат функции. Наверняка за этим стоит какая-нибудь история про совместимость.

Linda-chan

VB6 любит твипы. OLE любит химетрики. GDI любит дюймы. Чтобы получить размер картинки в пикселях в StdPicture, нужно всё это конвертировать в миллиметры, потом в дюймы, потом узнавать, что там с DPI у экрана, и результат округлить. Круто же.

Linda-chan

Вчера всю ночь воевала с интересным глюком в своих программах. Короче, есть программа CloudIM, которая использует всякие дропбоксы в качестве транспорта. Когда приходит сообщение, в трее начинает мигать иконка, как других мессенджерах. Кроме того, есть одна утилита, которая запускает на фоне другие утилиты и каждый этап показывает мигающими иконками в трее. Всё это прекрасно мигало в Windows XP, но оказалось, что в Windows 7 просто показывается первый «кадр». Сначала думала, что это как-то связано с тем, что на машину с Нанами, где запускались эти проги, я хожу по RDP, но и с монитором ничего не изменилось. Потом предположила, что это специально сделано в системе, чтобы программы не раздражали пользователя. Короче, начала разбираться. Для начала сделала простую программу, которая показывает окошко и при этом выводит иконку в трэй, а при закрытии окна – убирает иконку. Так же в окне была кнопка, которая меняет иконку на следующую, а сами иконки программа брала из стандартных (те, что выводятся в окнах сообщений вроде красного крестика – их можно специально получить, чтобы в твоей программе они соответствовали тому, что выдаёт система). Что интересно, программа работала нормально. Даже если зажать кнопку энтером, иконки всё равно очень быстро менялись, так что борьбу системы с раздражителями я отбросила. Тогда перешла к натурным испытаниям. Взяла ресурсы у CloudIM и начала использовать иконки оттуда вместо системных. И тут с самонирисованными иконками всё сломалось. Если очень упростить картину, то сначала программа добавляет иконку в трэй через Shell_NotifyIcon() с параметром NIM_ADD. А когда нужно мигать, эта функция вызывается с параметром NIM_MODIFY и манипулятором нужной иконки. Сами иконки заранее грузятся из ресурсов через LoadImage() с указанием размера 16x16 (вдруг есть другие). Так же проверяется, что у нас за система, и если что-то до Windows 2000, иконки выбираются 16-цветные. В итоге программа загружает две иконки и попеременно рисует их в трее. Но, как я уже сказала, всегда рисовалась только первая, а вторая – никогда, хотя куча тестового кода показывала, что все вызовы происходят, и даже в самом окне иконки рисуются нормально. Попутно выяснилось, что если иконка грузится с диска функцией VB6 LoadPicture(), то всё рисуется нормально, а вот LoadImage() даёт такой сбой. Впрочем, потом оказалось, что если LoadImage() вызвать с параметром LR_LOADFROMFILE, то происходит та же проблема. Что-то было не так с самой LoadImage(). Я проверяла кучу кода, поскольку она вызывалась не напрямую, а через прослойки. Попутно попробовала LoadIcon() (она грузит только иконки и только размера 32x32, растягивая и сжимая всё, что не соответствует, если альтернатив нет). Попутно я попыталась не подписывать екзешник, ибо в описании Shell_NotifyIcon() что-то было про подпись, но, правда, в контексте идентификации иконки не по паре «манипулятор родительского окна – ID иконки», а по GUID. Но и это не помогло. Потом обратила внимание на сами иконки. Дело в том, что CloudIM использовала две иконки. В одной (первый кадр) был конвертик 16x16 в вариантах 16 цветов и 256. А во второй была пустота (конвертик появлялся и исчезал при анимации), поэтому там было два изображения: 16x16 и 32x32 с одним только прозрачным фоном. Почему такие размеры? Возможно, я хотела заюзать пустоту где-то ещё, но не стала. Но главное, я сделала обе картинки двухцветными. Чтобы пустота не занимала лишнее место. Вот где-то тут всё и ломалось. Windows 98 прекрасно чередовала 16-цветную картинку и 2-цвентую. Windows XP прекрасно чередовала 256-цветную картинку и 2-цветную. А вот Windows 7 сломалась. Вывела первую, а вторую рисовать отказалась, причём ошибок функция Shell_NotifyIcon() не возвращала никаких. Просто в трее оставалась старая иконка. После того, как я пустую иконку привела в соответствие, всё начало мигать как полагается. В принципе, я сразу подумала, что что-то не так с иконками, и даже заметила различия в форматах, но меня смутила вторая программа, где никаких пустых иконок не было, все иконки однозначно в одном формате, ибо кадры выглядят одинаково, только один залит тёмным цветом, а второй – светлым. Там даже все иконки 16-цветные! Это мне и подпортило отладку. Поэтому, разобравшись с первой программой, я перешла ко второй. Проверила тамошние иконки, потом добавила их в ресурсы тестовой программы. И внезапно оказалось, что всё прекрасно мигает! Я запустила ту самую программу, и оказалось, что там тоже всё прекрасно мигает! Секрет оказался в цветах самих иконок и в длине этапов, которые они обозначали. Как я уже сказала выше, на каждом этапе запускалась утилита, которая что-то делала, а иконка показывала, что она что-то делает. Первый этап, как правило, занимал больше всего времени, а последующие выполнялись заметно быстрее. На машине с Windows XP для утилит работы было больше, а на Windows 7 – заметно меньше. Поэтому последующие этапы на Windows 7 проходили быстро, часто – быстрее времени смены кадра, а оно было примерно 250 мс. с поправкой на тормоза. Тоесть по факту иконка мигала только на первом этапе, а на последующих появлялся первый кадр и исчезал. Что же не так с первым этапом? Если посмотреть на стандартную 16-цветную палитру, то можно заметить там пары цветов типа тёмно-зелёного и светло-зелёного. Все пары образуются подобными значениями в разных компонентах. Тоесть чисто по цифрам там всё сбалансировано. Просто глаз разные цвета воспринимает по-разному. И если отличие светло-зелёного от тёмно-зелёного видно сразу, то тёмно-синий от светло-синего отличается не так разительно и в зависимости от настроек дисплюя может вообще не бросаться в глаза. И по счастливому стечению обстоятельств первый этап обозначался именно синим цветом. Тоесть оно мигало, но это было не заметно. Кстати, пока я испытывала вторую утилиту, внимательно вглядываясь в иконки, я словила ещё один странный глюк. Неожиданно иконка одного из этапов не пропала и в трее образовалось две иконки, которые ещё и жили каждая своей жизнью, хотя иконка должна быть одна: программа не создавала никаких дополнительных. Правда, тут всё было ещё проще: увлёкшись, я прозевала запуск этой утилиты по планировщику, и он пришёлся как раз на тестовый запуск, а проверку, не запущена ли уже копия программы, я сделать забыла.

Linda-chan

Программа, написанная для Windows 1.01 прекрасно стартует и работает в Windows 10.
https://www.transmissionzer...ing/win16-apps-in-c/

Linda-chan

Microsoft не успела прекратить поддержку Windows 7, а нам уже рекомендуют срочно отключить компы с ней от сети. А то мало ли, взорвётся ещё.
https://www.howtogeek.com/5...ws-7-system-in-2020/

Linda-chan

Постоянно забываю про то, как выкинуть запомненные пароли из кэша в Windows 7.
https://spydevices.ru/net_pass/

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.