Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Разработка Windows Forms > Как узнать системным параметрам оформления Windows |
Автор: andrx 14.2.2006, 17:36 |
Подскажите пожалуйста, можно ли средствами С# получить доступ (чтение) к системным параметрам оформления Windows - т.е. Свойства экрана, закладка Оформление ? Если можно то как (если можно пример) ? В процессе написания кода возникла необходимость учитывать эти параметры. Извините, за название темы - правильно : Как узнать системные параметры оформления Windows (копировал ![]() |
Автор: Exception 14.2.2006, 18:05 |
Покопай в сторону API-функции GetSystemParametersInfo. |
Автор: andrx 14.2.2006, 18:12 |
Exception желательно чтобы можно было докопаться ТОЛЬКО средствами C# ! API уже в безвыходном случае. |
Автор: Exception 14.2.2006, 18:25 |
Можно узнать конкретные параметры, которые тебе нужны? |
Автор: andrx 14.2.2006, 18:33 |
да, конечно в "Свойствах экрана" эти параметры называются : 1. Полоска прокрутки, мне нужна ее ширина. 2. Граница активного (...неактивного) окна, также необходима ширина. |
Автор: mr.DUDA 14.2.2006, 20:57 | ||
См. WinAPI-шную функцию GetSystemMetrics, там всё (ну почти всё) можно узнать. Код:
|
Автор: Exception 14.2.2006, 23:05 |
[offtop] Тебя чего-то в последнее время на русские буквы пробивает ![]() [/offtop] |
Автор: dronzo 14.2.2006, 23:13 |
А что если посмотреть класс SystemInformation в System.Windows.Forms ? Ширина полосы прокрутки наверное будет SystemInformation.VerticalScrollBarWidth (по крайней мере значение совпадает с возвращаемым GetSystemMetrics). Как быть с шириной границы окна непонятно. Предполагал, что ширина границы окна SystemInformation.SizingBorderWidth или SystemInformation.BorderSize или SystemInformation.FrameBorderSize, но результат всё время отличается от того, что возвращает GetSystemMetrics ![]() |
Автор: mr.DUDA 15.2.2006, 08:48 |
Смотря что нужно получить. А вообще Reflector-ом можно посмотреть, что там внутри класса SystemInformation... Скорее всего тот же GetSystemMetrics ![]() P.S. русский язык рулит ![]() |
Автор: andrx 15.2.2006, 15:30 |
Всем премного благодарен за участие! dronzo Вы оказались правы, в System.Windows.Forms.SystemInformation действительно оказались все необходимые мне параметры, в том числе и граница окна - это FrameBorderSize, но с этим параметром дело обстоит так : его минимальное значение 4, если в свойствах экрана установить ширину границы окна 0, то FrameBorderSize=4, если же устанавливать ширину границы окна начиная с 1, то FrameBorderSize = 3 + ширина границы окна. (FrameBorderSize показывает ширину в пикселях, и даже если в свойствах экрана установить ширину границы окна 0 или 1, фактически она все равно составит 4 пикселя ) ! так что dronzo , спасибо, (пока что могу сказать только спасибо !) |
Автор: arilou 15.2.2006, 16:26 |
dronzo +1 Молодец! |