Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/43: Рейтинг темы: голосов - 43, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 16.03.2010
Сообщений: 32

Свернуть все окна, кроме окна программы

30.05.2012, 21:01. Показов 8329. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
здравствуйте. как программно свернуть все окна кроме окна самой программы
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.05.2012, 21:01
Ответы с готовыми решениями:

Свернуть дочерние окна сторонней программы
Здравствуйте, подскажите пожалуйста как свернуть в трей все дочернии окна основной программы, сторонней. Основную программу скрываю...

Свернуть все окна, т.е. имитировать нажатие Win+D
в C# свернуть все окна, т.е. эмитировать нажатие win + d Сасибо!

Как свернуть все окна кроме нашей формы?
Нашёл в интернете интересный код: Как свернуть все окна системы ? // Любимая наша процедура. {Для того чтобы использовать данный...

6
Футболист
 Аватар для Goal
533 / 435 / 142
Регистрация: 31.10.2011
Сообщений: 1,010
30.05.2012, 22:05
Простой пример.
1.Импортируеш метод из библиотеки user32.dll. Сделать ето нужно в полях класса, в методе которого находиться вызов етого метода
Клац
C#
1
2
 [DllImport("user32.dll")]
        public static extern bool ShowWindow(IntPtr hwnd, int cmd);

В классе формы создаеш метод
Метод
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public void getProc()
        {
            System.Diagnostics.Process[] etc = System.Diagnostics.Process.GetProcesses();//получаем процессы
            foreach (System.Diagnostics.Process anti in etc)//перебираем
            {
                if (anti.MainWindowTitle.ToString() != "")//отлавливаем процессы, которые имеют окна
                {
                    if (!anti.MainWindowTitle.ToString().Equals("Окно, которое не нужно закрывать(название окна)"))
                    {
                        richTextBox1.Text += (anti.MainWindowTitle.ToString() + "\n");
                        ShowWindow(anti.MainWindowHandle, 6);//сворачивам окна
                    }
                }
            }
        }

Создаеш событие загрузки формы(2 раза по ней кликнув, событие генерируеться само по сибе, вставляеш туда код)
Должно выглядеть так
C#
1
2
3
4
private void Form1_Load(object sender, EventArgs e)
        {
            getProc();//вызов метода
        }

Если ленивый, снизу в прикрепленных файлах лежит весь проект.
Вложения
Тип файла: rar Программно свернуть окна.rar (38.5 Кб, 130 просмотров)
2
1 / 1 / 0
Регистрация: 16.03.2010
Сообщений: 32
30.05.2012, 23:42  [ТС]
Goal спасибо

Добавлено через 4 минуты
а как сделать что бы проводник тоже сворачивался?
0
Футболист
 Аватар для Goal
533 / 435 / 142
Регистрация: 31.10.2011
Сообщений: 1,010
31.05.2012, 01:44
 Комментарий модератора 
Правила п.3.9


Я так понял, что проводник входит в процесс explorer..
и имя его окна динамически меняеться, пока что решения я не нашел, но ищу.

Добавлено через 56 минут
Смотри
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 public void getProc()
        {
            System.Diagnostics.Process[] etc = System.Diagnostics.Process.GetProcesses();//получаем процессы
            richTextBox1.Text = "";
            foreach (System.Diagnostics.Process anti in etc)
            {
                if (anti.MainWindowTitle.ToString() != "")//отлавливаем процессы, которые имеют окна
                {
                    if (!anti.MainWindowTitle.ToString().Equals("Form1"))//Окно, которое не нужно закрывать(название окна)
                    {
                        richTextBox1.Text += (anti.MainWindowTitle.ToString() + "\n");
                        ShowWindow(anti.MainWindowHandle, 6);//сворачивам окна
                    }
                }
 
                if (anti.ProcessName.Equals("explorer"))
                {
                    richTextBox1.Text += ("проводник свернут" + anti.MainWindowTitle+"\n");
                    ShowWindow(anti.MainWindowHandle, 6);//сворачивам окна
                }
            }
        }

В коде, заходит внутрь етого блока только 1 раз.
Код
C#
1
2
3
4
5
 if (anti.ProcessName.Equals("explorer"))
                {
                    richTextBox1.Text += ("проводник свернут" + anti.MainWindowTitle+"\n");
                    ShowWindow(anti.MainWindowHandle, 6);//сворачивам окна
                }

В результате выполнения программы сворачиваються все окна кроме проводника. Вот что печатает программа.
Результат роботы программы

Если не можете просмотреть, скажу что она пишет"Проводник свернут ". То есть названия окна мы не дождемся, а значит ето указатель не на нужное окно. а процесс то 1
2
1 / 1 / 0
Регистрация: 16.03.2010
Сообщений: 32
31.05.2012, 10:36  [ТС]
всё равно проводник не сворачивается...

C#
1
ShowWindow(anti.MainWindowHandle, 6)
а почему 6, а не 2?

Добавлено через 1 час 9 минут
а можно как нибудь с имитировать программное нажатие на Win+D или Win+M, а потом просто развернуть окно самой программы? так будет не легче?

Добавлено через 10 минут
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)]
        static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
        [DllImport("user32.dll", EntryPoint = "SendMessage", SetLastError = true)]
        static extern IntPtr SendMessage(IntPtr hWnd, Int32 Msg, IntPtr wParam, IntPtr lParam);
 
        const int WM_COMMAND = 0x111;
        const int MIN_ALL = 419;
        const int MIN_ALL_UNDO = 416;
        static void Min()
        {
            IntPtr lHwnd = FindWindow("Shell_TrayWnd", null);
            // свернуть
            SendMessage(lHwnd, WM_COMMAND, (IntPtr)MIN_ALL, IntPtr.Zero);
            System.Threading.Thread.Sleep(2000);
        }
Добавлено через 32 секунды
решил так сделать, вроде бы работает
0
 Аватар для Dj_SheLL
180 / 85 / 10
Регистрация: 13.02.2010
Сообщений: 318
31.05.2012, 14:30
Можно сделать проще:
1. Сделать окно своего приложения "дочкой" "Рабочего стола".
2. Эмулировать Win+D или Win+M
3
Заблокирован
31.05.2012, 14:35
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
using Shell32;//In "References " Add DLL C:\Windows\System32\Shell32.dll
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
       
        private void button1_Click(object sender, EventArgs e)
        {
            Shell32.Shell sh = new Shell();
            sh.MinimizeAll();
        }
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.05.2012, 14:35
Помогаю со студенческими работами здесь

Предотвратить сворачивание окна по нажатию кнопки Windows «Свернуть все окна»
Здравствуйте, пишу что то вроде гаджета на c# wpf, и возник вопрос: можно ли как нибудь предотвратить сворачивание окна при нажатии...

Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна"
Что происходит при нажатии этой кнопки в плане сообщениий, и как их перехватить и игнорировать,что бы окно не сворачивалось? Чем это...

Свернуть все окна
Обращаюсь за небольшой помощью,в win 7 64 bit ultimate в трее есть кнопка " Свернуть все окна",можно ли как-нибудь её убрать?

Свернуть все окна
Моя программа в определённый момент должна свернуть все окна на рабочем столе, кроме своего Делаю вот так: EnumDesktopWindows(0,...

Свернуть все окна (Win'XP)
В сети нашел такой пример: Dim clsidShell As New Guid("13709620-C279-11CE-A49E-444553540000") Dim shell As Object =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
[В процессе разработки] SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru