JavaScript: обнаружьте, если тема окон XP или Classic включена

Там какой-либо путь состоит в том, чтобы обнаружить, какая тема Windows XP используется?

Я подозреваю, что нет никакого определенного вызова API, который можно сделать, но Вы можете понимать это путем проверки чего-то на некотором элементе DOM, т.е. выявлении признаков.

Другой вопрос: классическая тема даже существует на Windows Vista или окнах 7?

редактирование - это - мое решение:

function isXpTheme() {
  var rgb;
  var map = { "rgb(212,208,200)" : false,
              "rgb(236,233,216)" : true };
  var $elem = $("

Следующий шаг должен выяснить то, что эта функция возвращает на non-xp машинах, и/или выясните, как обнаружить поля окон. Я протестировал это в Windows XP только, таким образом, перспектива и окна 7 могли бы дать различные значения цвета, должно быть легко добавить все же.

Вот демонстрационная страница этого в действии:

http://programmingdrunk.com/current-projects/isXpTheme/

6
задан Sam Hanley 2 May 2015 в 01:48
поделиться

2 ответа

Интересный вопрос. Единственное, что приходит в голову, это проверка размера кнопки по умолчанию. Он оформлен по-разному в обеих темах, и я полагаю, что он имеет другой размер. Это может быть наполовину надежным, если вы зададите кнопке фиксированный размер текста.

Я запущу виртуальную машину XP и проверю, действительно ли размеры различаются.

Обновление: Они действительно различаются.

Кнопка Google «Мне повезет»

  • в классической обложке: 99 x 23,75 (sic!) Пикселей
  • в обложке XP: 97 x 21,75 пикселей

Второй, менее надежный подход, который приходит к mind дает элементу системный цвет CSS , а затем анализирует полученный вычисленный цвет. В классическом режиме свойство ButtonFace будет иметь определенный оттенок серого, а я думаю другой оттенок в скине по умолчанию. Опять же, придется пройти проверку.

Обновление: они тоже разные.

ButtonFace Системный цвет CSS

  • в классической обложке Windows: # D4D0C8
  • в обложке XP: # ECE9D8

Очевидно, что оба подхода не работают, если пользователь внесет какие-либо изменения в цвета и / или шрифт. размеры. Подход с размером шрифта является более надежным ИМО, так как с этим меньше людей играют.

Вам, конечно, потребуются сравнительные таблицы для всех поколений Windows, так как предположительно значения для классического скина и скина по умолчанию будут отличаться.

6
ответ дан 17 December 2019 в 04:45
поделиться

просто чтобы дать отправную точку. Найдите IsThemeActive ()

-1
ответ дан 17 December 2019 в 04:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: