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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Valecus
0 / 0 / 0
Регистрация: 28.05.2010
Сообщений: 34
#1

Вывести список существующих на рабочем столе окон - C++

23.03.2011, 05:25. Просмотров 1005. Ответов 2
Метки нет (Все метки)

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

 Комментарий модератора 
Именуйте темы осмысленно. Название темы должно максимально полно отражать ее содержимое.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2011, 05:25     Вывести список существующих на рабочем столе окон
Посмотрите здесь:

C++ Файл на рабочем столе :)
Вывести список стран C++
C++ Вывести список на экран
Как создать ярлык на рабочем столе? C++
C++ Как из программы сменить обои на рабочем столе?
C++ Убрать значек щита с иконки программы на рабочем столе!
C++ Ошибка записи в файл на рабочем столе
C++ Список видимых окон
Создать папку на рабочем столе C++
Класс "Список окон" C++
C++ Вывести список
Массив структур: вывести данные о рабочем с наибольшей зарплатой и наименьшим стажем C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
LaГushan
124 / 124 / 14
Регистрация: 12.03.2011
Сообщений: 227
23.03.2011, 10:18     Вывести список существующих на рабочем столе окон #2
Видимо надо копать в сторону EnumWindows
Alex1234
13 / 13 / 0
Регистрация: 11.02.2011
Сообщений: 55
23.03.2011, 10:38     Вывести список существующих на рабочем столе окон #3
У системного меню может быть несколько разделителей. Если я правильно понял задание, то вот.
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
57
58
#include <windows.h>
#include <iostream>
 
//----------------------------------------------------
BOOL CALLBACK EnumWindowsWnd(HWND h, LPARAM p)
{
    char str[1000];
    GetClassNameA(h, str, 1000);
    std::cout << str << "\n";
    return 1;
}
 
//----------------------------------------------------
int main(int argc, char *argv[])
{
    std::cout << "Существующие окна\n";
    EnumWindows(&EnumWindowsWnd, 0);
 
    char  str[1000];
    HWND  task;
    HMENU menu;
    WORD  countMenuItems, menuState;
    while(strcmp(str, "exit"))
    {
        std::cin >> str;
        task = FindWindowA(str, NULL);
        if(task != NULL)
        {
            menu = GetSystemMenu(task, TRUE);
            if (menu)
            {
                countMenuItems = GetMenuItemCount(menu);
                for(int i = 0; i < countMenuItems; i++)
                {
                    menuState = GetMenuState(menu, i, MF_BYPOSITION);
                    if((menuState & MF_SEPARATOR) == MF_SEPARATOR);
                    if(DeleteMenu(menu, i, MF_BYCOMMAND))
                    {
                        std::cout << "Был удален разделитель ";
                        std::cout << "из системного меню окна ";
                        std::cout << str << "\n";
                    }
                }
            }
            else
            {
                std::cout << "У окна " << str;
                std::cout << " нет системного меню\n";
            }
        }
        else
        {
            std::cout << "Нет такого окна\n";
        }
    }
 
    return 0;
}
Yandex
Объявления
23.03.2011, 10:38     Вывести список существующих на рабочем столе окон
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru