Что нового

Твикер интерфейса системы

Danya98

Новичок
Сообщения
16
Репутация
0
Версия AutoIt: 3. , любая

Описание:
Твикер реестра, позволяющий выбрать семейство шрифтов для интерфейса и установить его для системы (как в Windows 7 & XP настройка шрифтов) и другие параметры
+Размер интерфейса должен быть независимым от масштаба системы
+Нужно менять расстояние между иконками
+Менять масштаб системы и показывать примерные рассчёты
+Надо иметь возможность применить один шрифт какого-либо размера для всех элементов (диалоговые окна, меню, иконки и т.д.) и иметь возможность кастомной настройки
+Надо модифицировать ярлыки запуска браузеров на параметры, отключающие масштабирование самих браузеров при масштабировании, для ФФ в идеале надо в about:config залезть/папку профиля, чтобы сделать тоже самое
Примечания:
Ключи реестра известны (это худо-бедно реализовано с помощью батников и рег-файлов), оплатить труд могу, но не знаю, заинтересуется ли кто. Можно не всё сразу делать
PS: это всё для защиты зрения
 

FazZzuR

Новичок
Сообщения
24
Репутация
1
Черканите на мыло [email protected]. Обсудим детали. Если уж известно где хранятся параметры, то вроде ничего сложного.
 
Автор
D

Danya98

Новичок
Сообщения
16
Репутация
0
Моя задача - посадить пользователя на безопасное расстояние и с прямой спиной и обеспечить условия (найти удобный размер шрифта, при котором нет необходимости пригибаться), т.е. Перестроить интерфейс системы и сайтов, чтобы все подряд э плясало от него и при этом было адекватным.
В специальных возможностях всё не так делается
 

Prog

Продвинутый
Сообщения
537
Репутация
65
Изменить разрешение экрана не вариант?
 
Автор
D

Danya98

Новичок
Сообщения
16
Репутация
0
Вариант, при котором изображение портится и полезное пространство уменьшается.
Если разрешение высокое, лучше другими методами его понижать.
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
Danya98
1. Подбирать шрифт можно в каком нибудь окне, потому что "применение" происходит долго.
2. Какой способ применяется для "применения" шрифтов в bat-файле?
Выкладывай bat и reg-файлы.

Кстати автоматизировать установки шрифта и для меня имеет смысл, практически всегда увеличиваю.

Prog [?]
Изменить разрешение экрана не вариант?
Разрешение должно быть такое, которое совпадает с пикселями экрана. Другое, отличающееся от настоящего, является трансформированным, размытым.
 
Автор
D

Danya98

Новичок
Сообщения
16
Репутация
0
Ссылка на всё (там визуально понятнее):

dreamject org/dreamjects/esi/premiumpage/
По поводу рег-файлов: готовые презеты с прописанными семействами шрифтов и расстояниями между иконками (если оставлять прежнее, как это делает сама Винда, то будет влезать мало букв). Шрифты в нех-виде пишутся, а не в строке. Первые два символа содержат инфу о размере шрифта.
>Разрешение должно быть такое, которое совпадает с пикселями экрана. Другое, отличающееся от настоящего, является трансформированным, размытым.
У меня это сделано через «логическое» разрешение. Для получения лог. разрешения надо поделить реальное разрешение на масштаб системы. Это почти тоже самое масштабирование, только позволяет не уходить за «границы дозволенного», чтобы элементы не выпирали. Например, при лог. разрешении меньше ~1242×698 (это масштаб 111% для 1366×768), некоторые окна начнут вылезать за границы экрана. Значение 111% удобно тем, что для получения оригинального вида, надо задать в окне масштаб 90% (1*1.11*0.9≈1).

//хотел бы подробнее написать, но надо знать, в какую сторону)

2SfxKi7fr6o.jpg
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
Danya98
1. Я всегда делал Arial, размер 10. Так как в "проводнике" этот размер не увеличивает интервал между файлами. По ширине компактный. На Linux пользуюсь NanumGothic.
2. Если сделать стиль как в Windows 98, то просто применять текстовые стилевые конфиги с разным шрифтом и разрешением
3. Для стилей Windows XP есть такие, которые содержат размеры шрифтов в ресурсах. Через программу редактирования ресурсов извлекаю ресурс в текстовый файл. Написал скрипт который увеличивает или уменьшает все шрифты в фале на указанную величину, например +2. Применяю скрипт, копирую результат в ресурсы DLL, сохраняю с индексом 1 (2, 3, 4 и т.д.) и применяю в настройках стиля новую. Потом у меня получилось несколько DLL для разных пользователей, с плохим зрением, или с большими экранами, почти по заказу.
4. Для Windows 7 и выше... стилевые файлы не ковырял, но было желание написать скриптик, аналог того что увеличивал шрифт на 2, только он работает с окном настройки в самой Windows. То есть Задал шрифт и размер или инкремент и прогнал по окну настройки, при этом не надо патчить DLL, а просто выбрал любую тему и перенастроил шрифт.

По поводу рег-файлов: готовые презеты
Нсколько я знаю менять в реестре не всегда помогает, надо же прибить эксплорер, чтобы он не переписал то что ты ввёл в реестр, как он обычно делает. То есть надо вызвать процедуру применения стиля, как будто он должен перечитать настройки, а просто перезагрузить, он просто сохранит свои настройки поверх введённых и всё. А прибить эксплорер и снова запустить, не факт что это работает для всей системы, хотя...

Моя задача - посадить пользователя на безопасное расстояние и с прямой спиной и обеспечить условия (найти удобный размер шрифта, при котором нет необходимости пригибаться)
При мелком шрифте я не пригибаюсь, просто глаза напрягаются, быстро устают. Я вообще не понимаю, зачем по дефолту такой мелкий шрифт, даже когда у меня зрение было 100%, шрифт казался настолько мелким, что никогда не привыкнуть. Всем кому увеличивал, всем нравилось.

Сейчас возникла идейка, создать окно к примеру с ListViewer и ComboBox для выбора шрифта и размера и заголовок "Выберите шрифт для эксплорера" и выбранный тут же применять к ListViewer для просмотра, и т.д. Тот же приём для элемента подсказки. Только для заголовка наверно не получится, если только хитроумно скриншотить окно и вырезать заголовок и на фоне его сделать шрифт. Просто этот способ не требует перезагрузки всего интерфейса и обновления окон, который на разных компьютерах может происходить от 5 сек, до минуты. После каждого пшика ждать минуту не айс.
 
Автор
D

Danya98

Новичок
Сообщения
16
Репутация
0
AZJIO [?]
1. Я всегда делал Arial, размер 10. Так как в "проводнике" этот размер не увеличивает интервал между файлами. По ширине компактный. На Linux пользуюсь NanumGothic.
>этот размер не увеличивает интервал между файлами
Вот это не понял, но расстояние между иконками задаётся отдельно (но мало кто это делает). В Шин≥8 юзер не контроллирует этот параметр, поэтому при увеличении шрифта меньше текста в подпись иконок влезает.
Шрифты имеют такую неявную характеристику, как «реальная высота». Arial не супер, Вердана круче всех, затем Tahoma. Мне минимальный размер шрифта нужен 12пт, при нём дефолтный и неизменяемый в Вин≥8 Segoe UI на самом популярном 1366х768 будет вылезать менюшками всплывающими и иногда окнами.
>3. Для стилей Windows XP есть такие, которые содержат размеры шрифтов в ресурсах. Через программу редактирования ресурсов извлекаю ресурс в текстовый файл. Написал скрипт который увеличивает или уменьшает все шрифты в фале на указанную величину, например +2.
Нужно что-то общее, да и роль ХР сейчас всё меньшая. Но интересно взглянуть на реализацию.
>4. Для Windows 7 и выше... стилевые файлы не ковырял, но было желание написать скриптик, аналог того что увеличивал шрифт на 2, только он работает с окном настройки в самой Windows.
Segoe UI очень плох для х768.
Нсколько я знаю менять в реестре не всегда помогает, надо же прибить эксплорер, чтобы он не переписал то что ты ввёл в реестр, как он обычно делает. То есть надо вызвать процедуру применения стиля
А как найти эту процедуру? Но у Вин≥8 другая тема — стили, даже если содержат инфу о размерах шрифта, не влияют на параметры. Эксплорер прибивать не надо, отказа ни разу не видел, релогина достаточно.
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
Danya98 [?]
Arial не супер, Вердана круче всех
Arial при размере 10 в Notepad++ пункты главного меню умещаются в одной строке, а при Verdana уже не влазит, потому что шрифт шире. Если выставить меньше, например размер 8, то он будет уже таким мелким, что уже как по дефолту в Windows. Arial более плотный. У шрифтов видимо есть меж-строчный интервал. Попробуй выставить Segoe UI и потом Arial размером 10-11, и ты увидишь что число строк при всех равных условиях, при той же высоте окна у Arial останется тот же, просто шрифт станет удобнее-читабельнее-"без напряжения глаз", а при " Segoe UI" шрифт примерно того же размера, но между строками будет огромный интервал и влезет на 30% меньше строк.

[?]
Ссылка на всё (там визуально понятнее):
Да и так понятно, хотя шрифты веб-страницы отличаются от размера шрифта в окнах при одинаковых размерах. У мена в FireFox шрифт 16, а выглядит он как 10, а так как многие сайты делают мелкий шрифт, то у меня стоит принудительная установки шрифта размером 16, независимо от того что указывает сайт, точнее задан минимальный размер 16, больше можно, меньше нельзя, всё равно будет 16 и выбранный мной шрифт.

[?]
Segoe UI очень плох для х768.
Чем шрифт несовместим с разрешением? Если он крупный, задай меньший размер и наоборот. Segoe UI чуть посовременней, расширен интервал меж буквами и меж строк и немного приплюснутый в сравнении с Arial. Он (Segoe UI) как бы более идеален, а Arial практичнее по экономии экрана. Если ты хочешь чтобы сайт хорошо выглядел, то выберешь более удобочитаемый шрифт для большинства (Segoe UI), но так как при этом влезет меньше текста, то для себя настроишь браузер чтобы он игнорировал шрифты разработчиков страницы. Это как бардак, он некрасив, но практичен.

Вот пару моих скриншотов для сравнения, сделанных год назад.
http://s009.radikal.ru/i307/1501/e7/c6b6e6585943.png
http://s020.radikal.ru/i716/1501/bd/293b87cc473d.png

Тема, файл "*.theme" для классического стиля, поищи в интернете примеры. Эту я делал для LiveCD, так что пути другие.
http://pastebin.com/jaQBV8Y1

Тоже, только reg-файл.
http://pastebin.com/gW8aqnwX

скрипт увеличивающий шрифт на +2 (два раза на +1)
Код:
$text=ClipGet()
For $i = 25 to 7 Step -1
	$text=StringReplace($text, 'Arial, '&$i, 'Arial, '&$i+1)
	$text=StringReplace($text, 'Segoe UI, '&$i, 'Segoe UI, '&$i+1)
Next
For $i = 25 to 7 Step -1
	$text=StringReplace($text, 'Arial, '&$i, 'Arial, '&$i+1)
	$text=StringReplace($text, 'Segoe UI, '&$i, 'Segoe UI, '&$i+1)
Next
ClipPut($text)
 
Автор
D

Danya98

Новичок
Сообщения
16
Репутация
0
AZJIO [?]
У шрифтов видимо есть меж-строчный интервал. Попробуй выставить Segoe UI и потом Arial размером 10-11, и ты увидишь что число строк при всех равных условиях, при той же высоте окна у Arial останется тот же, просто шрифт станет удобнее-читабельнее-"без напряжения глаз", а при " Segoe UI" шрифт примерно того же размера, но между строками будет огромный интервал и влезет на 30% меньше строк.

Чем шрифт несовместим с разрешением? Ес
Я как раз об этом и писал, да и ты тоже самое написал. Как по мне, я не использую размер шрифта <12 пунктов (16 пикселей). А лучше, ~15-пунктов, но на Лине. Винда делает шрифты слишком жирными и ужасными (большинство шрифтов, Segoe, Counter New или как его исключения), если округлённое значение >18 пикселей.
> Если он крупный, задай меньший размер и наоборот.
Так дело не в крупности, а в интервале. Segoe UI даже, наоборот, меньше, чем Verdana.

Кстати, почему всё, что меньше 12 пт — слишком мелко, даже 10
Большинство юзеров криво сидят на расстоянии ~40 см до компа (если о ноутах речь, PPI ~100). Если они выпрямятся, расстояние увеличится до ~60см, т.е. в 1.5 раза. В самой популярной сети вконтакте размер 11 пикселей (не пунктов). Чтобы обеспечить такой же комфорт на расстоянии в 1.5 раза больше, текст так же должен быть в 1.5 раз больше, это 16px (12пт)-17рх. А если я сажусь за монитор 1920×1080 21.5″, то при правильном положении расстояние 85-100см будет, это ещё крупнее.
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
Danya98
В конечном итоге тебе нужен просто GUI, научится его делать. Если ты хочешь готовое, то задание должно быть более чётким. Получается из описания задания, что тут нужны не только знания AutoIt, а ещё и знание функций работающих с системой. Перелогинится это тоже не думаю, что применит изменённый реестр, это просто закроет программы, то есть перепишет твои данные текущими и войдёт с теми же настройками. Вот если применить, как бы кликнуть файл темы, то он предложит примениться (в Windows XP).
Ещё раз повторяю, зачем тебе применять по принципу применения темы? Это долго. Можно просто сделать заготовки текста в GUI и предложить пользователю выбрать шрифт и размер. И когда текст в GUI будет удобен для чтения, результаты выбора уже как то применить, либо авто-кликаньем интерфейса настроек, либо искать функцию, которая перечитает реестр, возможно её и нет, так как применение может происходить из временного кеша данных в памяти с импортом в реестр и одновременным обновлением интерфейса, а не перечитыванием реестра.
Из моего опыта, я просто делаю шрифт 10-11 и говорю, что могу любой другой сделать, только скажите. У кого-то зрение по хуже, кто-то просто хочет крупнее, у кого то экран огромный и стоИт далеко от кресла, естественно он специально выбирает крупный шрифт, так что угловой его размер такой же но число пиксель на высоту шрифта больше, естественно чётче.
Замерил у себя, я всегда на расстоянии 60 см.
Если ты настраивал тему то видел там шрифт подсказок, шрифт значков (текста в эксплорере), шрифт меню. Кстати шрифт "выделенного пункта" автоматически меняется при установки шрифта значков, так как там разница только в цвете, тоже и для заголовка, выбираешь активный, автоматически применяется и к неактивному. Вот только предпросмотр ограниченный, там заголовок, меню, сообщение, а как раз самого главного "шрифт значков" нет, а также продпросмотра подсказки. Вот по принципу предпросмотра и нужно делать. Однако улучшить, например применить некий шрифт или размер для всех, чтобы потом подстроить только заголовок, а то приходится 10 раз там щёлкать и выбирать одно и тоже. И ещё бы сделать сохранение выбранных в стилевой файл, чтобы потом на любой системе просто выбрал свой стиль и он в секунду применился. Вот это бы действительно упростило задачу многим.
 
Автор
D

Danya98

Новичок
Сообщения
16
Репутация
0
AZJIO, спасибо за описание). Толком здесь не описываю пока, т.к. вместе с FazZzuR успешно решаем проблемы.
Вот пробник
https://cloud.mail.ru/public/6mwj/nkX5Fn4M1
Стили — это быстро, но сейчас всё уходит в сторону Вин≥8 . В этих виндах отношение к стилям другое — они НЕ применяют к системе шрифты из темы. И это в чём-то правильно, т.к. работая со стилями, ты применяешь относительный размер шрифта. То есть, стоит масштаб 150%, применил стиль с 12 пунктым шрифтом → текст станет 18-пунктным.
Кроме этого, следует менять расстояние между иконками, а они из темы не применяются вообще нигде (по крайней мере начиная с хрюши). Может при переходе с 8 до 10 пунктов это не такую роль сыграет, но если с 8 до 12, да ещё вердану или другой широкий шрифт впилить, то сыграет ещё как.
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
Danya98
Вот пробы - ссылка. Предварительный код, пока экспериментирую.

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


Несколько раз перезагружал, чтобы восстановить прежнее. При чём, когда я выставил шрифт 10, а масштабирование 100% это привело к шрифту 6, поэтому пришлось выставить размеры шрифта и переключить тему туда-сюда.
Изначально всё стало крупно потому что я применил масштабирование, но так как это ни не что визуально не влияло, то оставил и занимался своими делами до того момента, как после перезагрузки едва ли окно умещалось чтобы нажимать кнопку ОК в настройках монитора, ну ладно я знаю как клавишами управлять окном, но кто-то же зависнет на этом. В общем надо делать предпросмотр, вычислять пределы для конкретного разрешения экрана, указывать, где в реестре что меняется или делать экспорт участков реестра текущих настроек, чтобы восстановить назад без танца с бубном.
 

FazZzuR

Новичок
Сообщения
24
Репутация
1
Ахах. Даже я тестировал собственноручно написанный и скомпилированный файл только в виртуалках. И запустил бы на основной системе только после того как был бы твердо уверен что все протестировано и работает как задумывалось и без нюансов.
А тут человек запускает бог пойми чей exe файл с форума на основной системе. Не надо так, это может привезти к куда большим проблемам :rofl:
 
Автор
D

Danya98

Новичок
Сообщения
16
Репутация
0
AZJIO
приветствую). Хотел вчера написать, да руки не дошли. Большое спасибо за некоторые нюансы, можно будет взять на вооружение. Есть рабочий вариант скрипта, огромное спасибо, FazZzuR правда пока тоже не без нюансов, но работает на системах от ХР до 10. Вот образец — http://vk.com/doc231481764_437476582

Хотелось бы узнать твоё мнение по дизайну, т.к. он несколько расходится. Например сам алгоритм выбора шрифта. Классика — это когда человек вслепую (на Вин ≥8) или вполуслепую. Выбирает какой-то абстрактный шрифт (или, начиная с вин 8, не может выбирать) для каждого элемента (значки, диалоги, меню).

//потом допишу
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
FazZzuR

Запросто, от порядочных людей без проблем запускаю. А система есть в образе, 20 минут и чистенькая со всеми программами, так что не всё так страшно как у вас.
 

FazZzuR

Новичок
Сообщения
24
Репутация
1
AZJIO, Многие exe файлы не только повреждают программы и систему. Есть еще всякие винлокеры, трояны которые просто вытянут из браузеров максимум инфы и отошлют на сервер злоумышленнику. Куча вариантов, в которых образ системы ну никак не поможет, но поможет виртуалка.
Хотя если вы хорошо знаете источник, другое дело. Насчет порядочности подтвержу, убедился лично, но запускать бы на основной системы exe один фиг бы не стал :smile:


Danya98, я особо не изучал предложение AZJIO. И совета насчет выбора шрифта не дам, я все же просто выполнил тз, и знаком с вопросом очень поверхностно. Для того что бы решить какой интерфейс выбора шрифтов лучше надо этой темой заниматься и с юзерами конечными контактировать, так что я думаю в этом вопросе тебе тут лучше всех будет видно какое решение лучше.
Ну и человек дело предложил - читать настройки системы, и на основе этой информации предлагать разный диапазон настроек. Что бы масштаб 500% был на 4к мониторе, и не было на 1366х768. А то как нажмешь случайно, так и систему переставлять придется если юзер не особо шарящий :rofl: + При первом запуске программы читать настройки системы и сохранять в бэкап файл, а не брать готовый вариант по умолчанию.

P.S. То ли я облажался, то ли ты чего там направил. Скинутый твой пример не работает из-за того что в главном файле отстувует строка
Код:
#include <GuiEdit.au3>
 
Верх