Pull to refresh

Comments 20

Я бы обязательно добавил в статью возможность регистрации COM серверов в пределах приложения (без каких-либо записей в реестр).
Опишите как это делается
Вот тут я считаю очень неплохо описано. Элемент comClass, даже пример есть.
Мне никогда не приходилось серьезно заниматся COM-ом, и о такой возможности я даже не знал. Спасибо за дополнение.
хмм. то есть если ресхаком у инсталятора порезать uac строки, то можно будет на работе без прав себе игруху поставить?
Нет, конечно.
Если нет прав для записи в каталоги установки и ветки реестра — ничего не выйдет.
Еще и цифровая подпись слетит (если есть) — еще один флаг, для запрета через политики и / или антивирусы.
Но небольшой шанс конечно появится. Если нет строгих политик, программа не пишет в системные папки / реестр, не устанавливает драйвера, и позволяет выбрать каталог для установки или пишет в пользовательский каталог.
Например, так делают Google Chrome и Mail-агент.
Но они появляются в «Программы и компоненты» в виде установленных программ и для их удаления необходимы админские права (справедливо для XP), вот как они это делают и зачем?
Кажется я читал в блоге Реймонда Чена, что «Программы и компоненты» — это одно из тех мест, которое разработчики снабдили парочкой фирменных майкрософтовских хаков, повышающих совместимость. Если знать как они работают, то туда можно попасть и без прав админа.
Если вашей игрушке хватит того, что позволяет делать виртуализация файловой системы и реестра, то возможно она будет нормально работать. Правда есть один нюанс: если винда видит в названии программы слова наподобие setup или install, она считает их инсталляторами и запрашивает права админа. Это касается и тех файлов, которые распаковываются только на время инсталяции.
В общем проще упаковать игрушку в виртуальный контейнер, и надеятся, что ей хватит установленых в системе драйверов.
Декларирование совместимости


Вы тут главную вещь забыли. Если вы не объявите о совмести с используемой версией Windows и у вас произойдет не обработанное исключение, то Windows после закрытия программы будет запускать средство устранения проблем с совместимостью программы (как-то так оно называется).
Да, я давал ссылку на страничку MSDN, где это описано. Отдельно в статье я не стал об этом писать потому, что мне эта тема показалась не особо важной.
Для нас оказалось в итоге важно. Программа почему то на новой Windows иногда показывала мастер совместимости, причем на старой никогда окна с крешем не появлялось из за используемой защиты видимо. Долго не могли понять из за чего.
В Windows 8.1 появилась возможность указывать разный масштаб разным мониторам, если подключено сразу несколько.
К сожалению, работает это нормально только в полноэкранных (Metro) приложениях. В новом режиме в Win 8.1 обычные Desktop (Win32) приложения просто рисуются в DPI, который вы выберете, а потом скалируются DWM-ом в разрешение монитора. Короче говоря, это лучше, чем было, но всё равно не юзабельно. После 5 минут чтения начинают болеть глаза и голова.

Пользуясь случаем, передаю привет всем продуктам Adobe, а также Google Chrome (включение через реестр не решает проблему), Skype, GoToMeeting и Dropbox, которые не поддерживают Hi-DPI в 2014-м году.
Приложения должны поддерживать эту фишку. Даже те, которые умеют нормально масштабироваться на одном мониторе, придется серьезно переделывать. Так что ничего удивительного, что еще почти нету софта который нормально работает в таких условиях.
Что касается Хрома, то я сам сильно удивился, когда узнал. У Лисы с этим намного лучше, а если дополнительно юзать плагин NoSquint, так вообще отлично.
А есть у вас примеры таких работающих приложений?
Мне проверить неначем. Но правильные значения в манифестах есть у SndVol.exe и mstsc.exe. Проводник наверное также поддерживает эту фишку, но у него в манифесте нестандартное значение параметра dpiAware равное «Explorer». Еще можно попробовать глянуть в свежем офисе.
Эти приложения (и Task Manager новый) просто не скалируются DWM-ом при переносе с одного дисплея на другой, т.е. пользоваться ими становится совсем невозможно.

Поэтому я считаю, что Hi-DPI на Windows — это дохлый номер пока.
Sign up to leave a comment.

Articles