Там какой-либо путь состоит в том, чтобы обнаружить, какая тема 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 могли бы дать различные значения цвета, должно быть легко добавить все же.
Вот демонстрационная страница этого в действии:
Интересный вопрос. Единственное, что приходит в голову, это проверка размера кнопки по умолчанию. Он оформлен по-разному в обеих темах, и я полагаю, что он имеет другой размер. Это может быть наполовину надежным, если вы зададите кнопке фиксированный размер текста.
Я запущу виртуальную машину XP и проверю, действительно ли размеры различаются.
Обновление: Они действительно различаются.
Кнопка Google «Мне повезет»
Второй, менее надежный подход, который приходит к mind дает элементу системный цвет CSS , а затем анализирует полученный вычисленный цвет. В классическом режиме свойство ButtonFace
будет иметь определенный оттенок серого, а я думаю другой оттенок в скине по умолчанию. Опять же, придется пройти проверку.
Обновление: они тоже разные.
ButtonFace
Системный цвет CSS
Очевидно, что оба подхода не работают, если пользователь внесет какие-либо изменения в цвета и / или шрифт. размеры. Подход с размером шрифта является более надежным ИМО, так как с этим меньше людей играют.
Вам, конечно, потребуются сравнительные таблицы для всех поколений Windows, так как предположительно значения для классического скина и скина по умолчанию будут отличаться.
просто чтобы дать отправную точку. Найдите IsThemeActive ()