| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка 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 Молодец! |