Скрыть ярлыки рабочего стола - C#
Формулировка задачи:
Можно сделать так чтоб при запуске программы исчезали все ярлыки рабочего стола?
Решение задачи: «Скрыть ярлыки рабочего стола»
textual
Листинг программы
static class Program { #region Declarations delegate bool EnumCallback(IntPtr hwnd, IntPtr lParam); [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] static extern bool EnumWindows(EnumCallback lpEnumFunc, IntPtr lParam); [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] static extern IntPtr GetWindow(IntPtr hWnd, GWConstants iCmd); enum GWConstants : int { GW_HWNDFIRST, GW_HWNDLAST, GW_HWNDNEXT, GW_HWNDPREV, GW_OWNER, GW_CHILD, GW_MAX } [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] public static extern int GetClassName(IntPtr hWnd, [Out] StringBuilder buf, int nMaxCount); [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] static extern bool ShowWindow(IntPtr hWnd, int nShow); #endregion #region Methods static string GetClassNameFromHWND(IntPtr hWnd) { StringBuilder sb = new StringBuilder(256); int len = GetClassName(hWnd, sb, sb.Capacity); if (len > 0) return sb.ToString(0, len); throw new Win32Exception(Marshal.GetLastWin32Error()); } static void ShowHideDesktopIcons(bool show) { EnumWindows(new EnumCallback(EnumWins), show ? (IntPtr)5 : IntPtr.Zero); } static bool EnumWins(IntPtr hWnd, IntPtr lParam) { if (hWnd != IntPtr.Zero) { IntPtr hDesk = GetWindow(hWnd, GWConstants.GW_CHILD); if (hDesk != IntPtr.Zero && GetClassNameFromHWND(hDesk) == "SHELLDLL_DefView") { hDesk = GetWindow(hDesk, GWConstants.GW_CHILD); if (hDesk != IntPtr.Zero && GetClassNameFromHWND(hDesk) == "SysListView32") { ShowWindow(hDesk, lParam.ToInt32()); return false; } } } return true; } #endregion /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main(string[] args) { ShowHideDesktopIcons(false); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д