TGViewer
Турбокодер Турбокодер @turbocoderblog · 336 subscribers
Post #121 392
Столкнулся с очередным детективом в разработке 😱

Над этой проблемой я бился уже очень очень долго, периодически возвращался к ней, но безрезультатно.

Задача: определить масштабирование для каждого монитора в системе (т.е. 100%, 125% и т.д.)
Это нужно для того, чтобы правильно размещать элементы TurboConf в конфигураторе 1С.

Задача непростая. Как таковой готовой функции в WinApi и .NET нет. В последних версиях .NET появилось что-то похожее, но работает только для Windows 10 и выше, и то не на всех билдах и в определенных условиях.

Для Window 7 свой метод получения, для 8 тоже, для 10 разных версий тоже, ну и для 11 конечно по своему. А еще есть разные флаги, которые тоже влияют на это, в общем как обычно.

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

Но она никак не работала в TurboConf...

В этот раз я решил не сдаваться и довести дело до конца. 🔍

Чтобы способ заработал, приложению нужно выйти из песочницы. Для этого требуется настроить манифест программы, чтобы система знала, что можно отдавать реальный DPI приложению, а не виртуальный.

Добавил манифест - не заработало.

Я создал тестовое приложение из одной формы и манифестом. Тоже.

Я выяснил, что для моего типа приложений (WinForms) оказывается нужен не манифест, а app.confg. ОК.

Не заработало.

Попробовал на тестовом приложении с app.confg - работает! Интересно.

Я начал сравнивать и менять все настройки приложений на одинаковые. Не помогает.

Я начал удалять из проекта все что можно, все зависимости, библиотеки т.д. Безрезультатно.

Я удалил практически все, оставил одну форму как в тестовом. Результат тот же.

Я заменил форму, файл проекта полностью и т.д. из тестового. Приложения уже были полностью идентичны. Но нет.

Я создал, новую чистую папку для проекта, и заново собрал - не работает. 😥

В чем же дело?! Это были две полностью одинаковые копии, кроме одного различия...

Названия сборки!

Одно называлось TestDpi.exe, а второе TurboConf.Application.exe
Убираю точку из названия и все работает!!! 😅

Что это было??? Из-за точки в названии я никак не мог долгое время заставить работать функцию! Мораль - никогда не сдавайтесь!

В общем хеппи энд, работаем дальше... 😉
  • 🔥 16
  • 👍 9
  • 🤯 2
  • ❤ 1
  • 👾 1
More from @turbocoderblog
  1. May 22, 2026Купил подписку Claude Pro Max на месяц за 1600 руб. попробовать. В результате после нескол…
  2. May 14, 2026Вот чем я сегодня занимаюсь весь день?? - Ранее бесплатный сервис VK ОРД ввел тариф за мар…
  3. Mar 12, 2026Задумался о покупке OLED монитора SAMSUNG Odyssey G5. Вроде на бумаге все хорошо, но смуща…
  4. Feb 5, 2026Как я и предполагал, начались побочные эффекты массового вайб-кодинга. GitHub признал, что…
  5. Feb 3, 2026Очень популярная тема сейчас - OpenClaw. Агент с ИИ, который делает за вас действия на ком…
  6. Feb 2, 2026Интересная статистика. Посмотрел результаты ежегодного опроса на ИС. 70% ответили, что НЕ…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →