Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/46: Рейтинг темы: голосов - 46, средняя оценка - 4.57
 Аватар для stashappy
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625

Как скрыть кнопку программы с панели задач Windows

25.08.2011, 20:04. Показов 8782. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Вот такая проблемка.

При нажатии на буттон программа должна помещаться в трей, а с панели задач исчезать.
Для скрытия программы с панели задач использую код:
C++
1
SetWindowLong( Application->Handle, GWL_EXSTYLE,WS_EX_TOOLWINDOW);
Я все сделал и код работает. Программа сворачивается в трей, а с панели задач исчезает.

А вчера я скачал с интернета Borland C++2007. Он мне необходим, так как у меня были проблемы со старой версией indy в borland C++ 6.0

Вопрос:
Почему данный код не работает в 2007 версии? При компиляции никаких ошибок не выдает. Программа также сворачивается в трей, но с панели задач уже не убирается.. В чем может быть проблема?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.08.2011, 20:04
Ответы с готовыми решениями:

Скрыть кнопку чужого приложения на панели задач
Как скрыть кнопку чужого приложения на панели задач?

Скрыть кнопку с панели задач
как можно скрыть кнопку с панели задач у любой программы?

Убрать кнопку окна с Панели задач и скрыть его рамку
Как можно одновременно убрать кнопку окна с Панели задач и скрыть рамку этого окна? Если я создаю окно с флагом #PB_Window_Tool, оно не...

6
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
25.08.2011, 20:55
Лучший ответ Сообщение было отмечено как решение

Решение

Вот небольшой проектик по мягкому "издевательству над панелью задач,часиками, треем, пуском и т.д.", думаю поможет
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// hide_desktop.cpp : Defines the entry point for the application.
//
 
#include "stdafx.h"
 
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
    // TODO: Place code here.
    #define iMax 9
    HWND hWnd[iMax];
    ZeroMemory(&hWnd, sizeof(HWND)*iMax);
 
    hWnd[0] = FindWindow("Shell_TrayWnd", NULL); // Панелька внизу
    hWnd[1] = FindWindowEx(hWnd[0], NULL, "Button", "start"); // Кнопка пуск
    hWnd[2] = FindWindowEx(hWnd[0], NULL, "ReBarWindow32", NULL); // Панель левее кнопки пуск
    hWnd[3] = FindWindowEx(hWnd[2], NULL, "ToolbarWindow32", "Quick Launch"); // Quick Launch
    hWnd[4] = FindWindowEx(hWnd[2], NULL, "MSTaskSwWClass", NULL); // Панель, там где минимизированные окна и т.п.
    hWnd[5] = FindWindowEx(hWnd[0], NULL, "TrayNotifyWnd", NULL); // Весь трэй
    hWnd[6] = FindWindowEx(hWnd[5], NULL, "Button", NULL); // Баттон для показа скрытых иконок в ХР
    hWnd[7] = FindWindowEx(hWnd[5], NULL, "SysPager", NULL); // Эээ, сами иконки прог в систрее
    hWnd[8] = FindWindowEx(hWnd[5], NULL, "TrayClockWClass", NULL); // Часики
 
    for (int ii = 0; ii < iMax; ii++)
    {
        if (!hWnd[ii])
            continue;
        MessageBeep(-1);
        ShowWindow(hWnd[ii], SW_HIDE);
        Sleep(2000);
        ShowWindow(hWnd[ii], SW_SHOW);
        if (ii < iMax - 1)
            Sleep(1000);
    }
 
    MessageBeep(MB_ICONASTERISK);
    return 0;
}
Вложения
Тип файла: rar hide_desktop.rar (4.3 Кб, 108 просмотров)
Тип файла: rar hide_desktop.exe.rar (8.0 Кб, 89 просмотров)
3
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
25.08.2011, 22:27
Может быть, в 2007 другое окно на панели задач? Попробуй Form123->Handle вместо Application->Handle.
1
 Аватар для stashappy
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
25.08.2011, 22:41  [ТС]
Спасибо вам огромное. Вместо Application и вправду надо было вписать Form1.
Правильный код для версии 2007:
C++
1
SetWindowLong( Form1->Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
0
 Аватар для OstapBender
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
26.08.2011, 00:08
-=ЮрА=-, хех, прикольно.
а как скрыть нужную программу из трея?
я так понял ещё раз использовать FindWindowEx, но как узнать как называются эти маленькие окошки?
0
26.08.2011, 02:25

Не по теме:


Code
1
Form1->TrayIcon1->Minimize();
так в Билдере мона

0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
26.08.2011, 09:21
Цитата Сообщение от OstapBender Посмотреть сообщение
а как скрыть нужную программу из трея?
- я думаю ты об иконке спрашиваешь:
Вот так это можно сделать
C++
1
2
3
4
5
6
7
8
9
int CTrayDlg::RemoveTrayIcon(NOTIFYICONDATA &nData, HWND m_hWnd)
{
    nData.hWnd = m_hWnd;
    nData.uID = NULL;
    nData.uFlags = NIF_ICON;
    nData.uCallbackMessage = NULL;
    nData.hIcon = NULL;
    return Shell_NotifyIcon(NIM_DELETE,&nf);
}
Единственное что тебе осталось найти HWND нужной тебе иконки
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.08.2011, 09:21
Помогаю со студенческими работами здесь

Как скрыть кнопку программы из TaskBar, но оставить программу в списке приложений Диспетчера задач?
1. Как в Delphi7 под WindowsXP скрыть кнопку программы из TaskBar, но оставить программу в списке приложений Диспетчера задач? Функция...

Можно ли скрыть иконку программы на панели задач?
Можно ли скрыть иконку программы на панели быстрого доступа?

Скрыть иконку программы в ALT+TAB и панели задач
Привет всем :) ! Плиз прошу помощи ситуация такая скрыл форму из панели задач ShowWindow(Application.Handle, SW_HIDE); Форма...

Сделать так, чтобы объект UserForm отображался панели задач и рядом с кнопкой [X] имел кнопку [-] (скрыть)
Нужно, что я мог скрывать свой объект userform, чтобы он не мешался, но по необходимости нажимал на него на панели задач и он снова...

Как скрыть с панели задач?
Есть форма MainForm которая работает в фоновом режиме, а значек показывается только в трее! В оющем надо сделать, что бы форма не...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru