Формула или API для расчета расстояния между значками на рабочем столе в Windows XP - PullRequest
1 голос
/ 15 октября 2008

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

  • Разрешение (дух)
  • Размер панели задач и размещение
  • Шрифты

Должно быть что-то большее. Может быть, есть какой-нибудь вызов API, о котором я не знаю?

Ответы [ 2 ]

3 голосов
/ 15 октября 2008

Есть 1001 способ получить / установить это (но я знаю только 2): -D

Регистрация Windows:

HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics

значения: IconSpacing и IconVerticalSpacing

по коду:

using System.Management; </p> <p>public string GetWinIconSpace()</p> <p>{</p> <pre><code>ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2","SELECT * FROM Win32_Desktop"); foreach (ManagementObject wmi in searcher.Get()) { try { return "Desktop Icon Spacing: " + wmi.GetPropertyValue("IconSpacing").ToString(); } catch { } } return "Desktop Icon Spacing: Unknown";

}

и 3-й, который я никогда не пробовал, вы можете найти здесь

0 голосов
/ 15 октября 2008

Они также могут быть проблемой размера из-за алгоритма масштабирования, если запрошенный размер иконки недоступен.
(поскольку файл значков на самом деле представляет собой набор значков, как объяснено в этой теме о , значки и курсоры знают, откуда они пришли , из Старое новое )

...