Домой Desktop Изменяем размер иконок рабочего стола: Справочник по C#

Изменяем размер иконок рабочего стола: Справочник по C#

485
0


[DllImport("user32.dll")]
public static extern long SendMessageTimeout(
int hWnd,
int Msg,
int wParam,
string lParam,
int fuFlags,
int uTimeout,
out int lpdwResult);

private const int HWND_BROADCAST = 0xffff;
private const int WM_SETTINGCHANGE = 0x001A;
private const int SPI_SETNONCLIENTMETRICS = 0x0002;

public bool ResizeDesktopIcons(int size)
{
//ключ отвечающий за размер иконок
string key = @"Control PanelDesktopWindowMetrics";
RegistryKey desktop = null;
int res = 0;
try
{
//открываем ключ реестра
desktop = Registry.CurrentUser.OpenSubKey(key, true);
//устанавливаем новый размер иконок
desktop.SetValue("Shell Icon Size", size, RegistryValueKind.String);
desktop.Flush();
//очистка кеша иконок
SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, string.Empty, SPI_SETNONCLIENTMETRICS, 5000, out res);
return true;
}
catch (Win32Exception ex)
{
MessageBox.Show(ex.ToString()); ;
return false;
}
finally
{
// Если ключ остается открытым то закрываем его его
if (desktop != null)
desktop.Close();
}
}

Для работы вам понадобится подключить следующие пространства имен:

using System.ComponentModel;
using System.Runtime.InteropServices;

Внимание!
Что бы изменения вступили в силу, необходимо перезагрузить ПК!

ЧИТАТЬ ТАКЖЕ:  Печать на одежде: сделай обычную вещь уникальной

Изменяем размер иконок рабочего стола: Справочник по C#

0.00 (0%) 0 votes

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь