Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 01.04.2015
Сообщений: 1

Скрыть окно сторонней программы посредством C++

01.04.2015, 10:57. Показов 3692. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Собсно сабж в заголовке. Есть программа, сторонняя которая выполняется долго и мозолит глаза, через vbs скрипт не скрывается да и сама по себе не сносится в трей.
Задача в следующем: убрать окно этой программы чтобы не мешала работе

Нашел на форуме этот код:
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
void HideTrayIcon(HWND hWnd)
{
    NOTIFYICONDATA nid;
    memset(&nid, 0, sizeof(NOTIFYICONDATA));
    nid.cbSize = sizeof(NOTIFYICONDATA);
    nid.hWnd = hWnd;
    nid.uID = 1;
    Shell_NotifyIcon(NIM_DELETE, &nid);
}
 
LRESULT CALLBACK WindowProcedure (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    static bool bCreated = false;
    switch (message)
    {
        case WM_DESTROY:
        {
            if(bCreated)
            {
                HideTrayIcon(hWnd);
            }
            PostQuitMessage(0);
        }
        break;
 
        // Щелкнешь по окну мышью - оно скроется и добавит иконку в Tray
        case WM_LBUTTONDOWN:
        {
            NOTIFYICONDATA nid;
            memset(&nid, 0, sizeof(NOTIFYICONDATA));
            nid.cbSize = sizeof(NOTIFYICONDATA);
            nid.hWnd = hWnd;
            nid.uID = 1;
            nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
            nid.uCallbackMessage = WM_USER + 200;
            nid.hIcon = LoadIcon(NULL, IDI_INFORMATION);
            lstrcpy (nid.szTip, "Test Tip");
            Shell_NotifyIcon(NIM_ADD, &nid);
            ShowWindow(hWnd, SW_HIDE);
            bCreated = true;
        }
        break;
 
        case WM_USER + 200:
            if(lParam == WM_LBUTTONDBLCLK) // дабл-клик по иконке в трее - все вернется назад
            {
                HideTrayIcon(hWnd);
                bCreated = false;
                ShowWindow(hWnd, SW_NORMAL);
            }
            break;
        default:
            return DefWindowProc (hWnd, message, wParam, lParam);
    }
    return 0;
}
но так и не догнал как его юзать, я только начинающий. да и я не уверен что мне этот код подходит. Вобщем, заранее благодарю всех кто постарается помочь в данной ситуации
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.04.2015, 10:57
Ответы с готовыми решениями:

Скрыть окно сторонней программы
Есть у меня допустим её HWND и скрыть я её могу ShowWindow(hWnd,SW_HIDE); но на панели задач всё равно остаётся... как с панели убрать?

Скрыть форму при запуске сторонней программы с помощью TProcess и отобразить после
Как мне сделать так, чтобы при запуске сторонней программы через кнопку на форме, с помощью TProcess, Форма пропадала, а при закрытии...

Сделать активным окно сторонней программы
Здравствуйте. Прошу помощи в данном вопросе, т.к. поиски по гуглам-яндексам, форумам и статьям выдают что то рядом, но не то. Имею...

2
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
01.04.2015, 11:41
А почему не сделать свою программу с одной кнопкой спрятать/показать и привязать к ней -
C++
1
2
ShowWindow(hwnd,SW_SHOW);
ShowWindow(hwnd,SW_HIDE);
0
5 / 5 / 0
Регистрация: 02.06.2014
Сообщений: 37
01.04.2015, 17:24
Так, на всякий случай, а то лично мне мне непонятно было бы что Игорь написал:

Найти окно программы через FindWindow(...) (имя и класс окна я бы посоветовал искать через spy++ например, и оттуда копировать в текст программы чтобы ни одного пробела не потерять).
А с найденным HWND можно делать что угодно, например скрыть/показать, минимизировать или размеры изменить...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.04.2015, 17:24
Помогаю со студенческими работами здесь

Сделать окно сторонней программы дочерним форме своего приложения
Возможно ли такое реализовать vb.net? Есть приложение .exe, запускал по команде, но открывается он не в отдельном окне а в моей форме.

Скрыть окно программы
вообщем есть вот такой код где запускаем pcexec с параметрами проблема в том что окно выполнения рсехес вылетает на весь экран и как...

Скрыть главное окно при старте программы
Народ, кто-нибудь в курсе, как скрыть главное окно при старте программы так, чтобы оно не появлялось на экране даже на мнгновение? Можно ли...

Создать окно произвольного размера, скрыть окно, показать окно, удалить окно.
Создать окно произвольного размера, скрыть окно, показать окно, удалить окно. Для создания окна необходимо произвести следующие...

Как скрыть процесс из своей программы (окно игры)
Как скрыть процесс из своей программы (окно игры)?


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru