Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [решено] Скрытие значков и гаджетов рабочего стола программно

Ответить
Настройки темы
Разное - [решено] Скрытие значков и гаджетов рабочего стола программно

Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте. Меня интересует можно ли как ни будь программно скрывать/отображать значки и гаджеты рабочего стола



т.е. ставить и убирать эти галочки.

Отправлено: 18:35, 29-05-2011

 

Аватара для volod3000

Новый участник


Сообщения: 26
Благодарности: 0

Профиль | Отправить PM | Цитировать


Скрытие всех значков на Рабочем столе

Cоздайте DWORD-параметр NoDesktop со значением 1 в разделе HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
__________________________________________________________________

Вот еще полезная информация

и еще , ветка гаджетов вот : HKEY_CLASSES_ROOT\DesktopBackground\Shell\Gadgets , а дальше нужно экспериментировать .

Отправлено: 15:56, 01-06-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата volod3000:
Cоздайте DWORD-параметр NoDesktop со значением 1 в разделе HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer »
Не пойдет, срабатывает только после перезагрузки системы, а мне нужно без перезагрузки.

Отправлено: 20:38, 01-06-2011 | #3


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Цитата MegaFlops:
Не пойдет, срабатывает только после перезагрузки системы, а мне нужно без перезагрузки. »
Значит запускай bat файл примерно такого содержания:
Код: Выделить весь код
taskkill /F /IM "explorer.exe"
start explorer
произойдет перезапуск оболочки.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 01:01, 02-06-2011 | #4


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Работает но эффект не такой как мне нужен.
Если скрывать через реестр, то срываются не только значки, но и перестаёт работать рабочий стол (в смысле не работает правый клик, выделение, перетаскивание).
А если скрывать через правый клик --> вид --> отображать значки рабочего стола скрываются только значки, а остальное всё работает.
Как быть а ?

Отправлено: 22:53, 02-06-2011 | #5


Аватара для ferget

Разный


Сообщения: 1294
Благодарности: 359

Профиль | Отправить PM | Цитировать


вот код на C#, скрывает значки

Код: Выделить весь код
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Text;
using System.ComponentModel;

namespace WindowsFormsApplication1
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main(string[] args)
        {
            DesktopIcons.Hide();
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }

    public static class DesktopIcons
    {
        #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);

        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)]
        static extern bool IsWindowVisible(IntPtr hWnd);
        
        #endregion

        static IntPtr hDesktop = IntPtr.Zero;

        #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());
        }

        public static void Show()
        {
            if (hDesktop != IntPtr.Zero && !IsWindowVisible(hDesktop))
                ShowWindow(hDesktop, 5);
            else
                EnumWindows(new EnumCallback(EnumWins), (IntPtr)5);
        }

        public static void Hide()
        {
            if (hDesktop != IntPtr.Zero && IsWindowVisible(hDesktop))
                ShowWindow(hDesktop, 0);
            else
                EnumWindows(new EnumCallback(EnumWins), 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());
                        hDesktop = hDesk;
                        return false;
                    }
                }
            }
            return true;
        }
        #endregion

    }
}
а чтобы скрыть гаджеты надо убить процесс sidebar.exe, после его запуска гаджеты снова появятся на своих местах

Последний раз редактировалось ferget, 03-06-2011 в 02:15.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:43, 03-06-2011 | #6


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата ferget:
вот код на C#, скрывает значки »
Отлично работает.

Всем кто помогал большое спасибо, вопрос снят.

Отправлено: 15:32, 03-06-2011 | #7


Аватара для rectator

Пользователь


Сообщения: 68
Благодарности: 3

Профиль | Отправить PM | Цитировать


А можно ли какой-либо батник или VBScript для этого сделать? Очень надо!

Отправлено: 12:02, 19-01-2013 | #8


Аватара для rectator

Пользователь


Сообщения: 68
Благодарности: 3

Профиль | Отправить PM | Цитировать


Помогите!
Скомпилируйте кто-нибудь этот код! Очень надо. Ребёнок замучил иконки эти таскать...

Вот пример на Delphi, как включить / отключить все объекты на Рабочем Столе:

Код: Выделить весь код
{Disable:}
EnableWindow(FindWindowEx(FindWindow
('Progman', nil), HWND(0), 'ShellDll_DefView', nil),
FALSE) ;

{Enable:}
EnableWindow( FindWindowEx( FindWindow
('Progman', nil), HWND(0), 'ShellDll_DefView', nil),
TRUE) ;

Отправлено: 21:08, 01-04-2013 | #9


Аватара для Сrack

Ветеран


Сообщения: 1255
Благодарности: 436

Профиль | Цитировать


http://rghost.ru/44957498

HTML код: Выделить весь код
включить / отключить все объекты на Рабочем Столе

Desktop.exe /d
Desktop.exe /e

Запуск без параметров скрывает иконки, повторный запуск отображает.

Последний раз редактировалось Сrack, 01-04-2013 в 22:36.

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:33, 01-04-2013 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [решено] Скрытие значков и гаджетов рабочего стола программно

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2008 R2 - Терминальный сервер и скрытие значков на панели SniZ Windows Server 2008/2008 R2 10 23-12-2010 13:17
Обои и Значки - Размер значков рабочего стола qmail123z Оформление Windows XP 1 05-10-2010 01:57
Перенаправление Рабочего стола ! Kobzar Microsoft Windows NT/2000/2003 3 27-05-2010 16:43
Конкурс - Изменение размера значков рабочего стола в Windows 7 OSZone Microsoft Windows 7 0 18-10-2009 20:30
Интерфейс - Глюк рабочего стола btc1 Microsoft Windows Vista 12 30-05-2008 12:07




 
Переход