Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.97
stashappy
 Аватар для stashappy
42 / 42 / 4
Регистрация: 21.08.2011
Сообщений: 625
25.08.2011, 20:04     Как скрыть кнопку программы с панели задач Windows #1
Здравствуйте.

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

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

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

Вопрос:
Почему данный код не работает в 2007 версии? При компиляции никаких ошибок не выдает. Программа также сворачивается в трей, но с панели задач уже не убирается.. В чем может быть проблема?
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
25.08.2011, 20:55     Как скрыть кнопку программы с панели задач Windows #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вот небольшой проектик по мягкому "издевательству над панелью задач,часиками, треем, пуском и т.д.", думаю поможет
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 Кб, 84 просмотров)
Тип файла: rar hide_desktop.exe.rar (8.0 Кб, 68 просмотров)
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
25.08.2011, 22:27     Как скрыть кнопку программы с панели задач Windows #3
Может быть, в 2007 другое окно на панели задач? Попробуй Form123->Handle вместо Application->Handle.
stashappy
 Аватар для stashappy
42 / 42 / 4
Регистрация: 21.08.2011
Сообщений: 625
25.08.2011, 22:41  [ТС]     Как скрыть кнопку программы с панели задач Windows #4
Спасибо вам огромное. Вместо Application и вправду надо было вписать Form1.
Правильный код для версии 2007:
C++
1
SetWindowLong( Form1->Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
26.08.2011, 00:08     Как скрыть кнопку программы с панели задач Windows #5
-=ЮрА=-, хех, прикольно.
а как скрыть нужную программу из трея?
я так понял ещё раз использовать FindWindowEx, но как узнать как называются эти маленькие окошки?
morphling
26.08.2011, 02:25
  #6

Не по теме:


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

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.08.2011, 09:21     Как скрыть кнопку программы с панели задач Windows
Еще ссылки по теме:

C++ Составление программы для решение задач
Управление значком программы в панели пуск C++
Текст в панели задач Windows C++

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
26.08.2011, 09:21     Как скрыть кнопку программы с панели задач Windows #7
Цитата Сообщение от 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 нужной тебе иконки
Yandex
Объявления
26.08.2011, 09:21     Как скрыть кнопку программы с панели задач Windows
Ответ Создать тему
Опции темы

Текущее время: 10:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru