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

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

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

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

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

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

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

Файл на рабочем столе :) - C++
Пытаюсь создать файл на рабочем столе, прежде проверяю есть ли он там :) необходимые функции bool FileExists(const char *fname) { ...

Создать папку на рабочем столе - C++
Добрый день подскажите как создать папку на рабочем столе. На своем рабочем столе я создал папку а вот как теперь сделать чтобы программа...

Ошибка записи в файл на рабочем столе - C++
Пытаюсь записать предложение на файл созданный на рабочем столе но не получается #include <fstream> using namespace std; int...

Как создать ярлык на рабочем столе? - C++
Как создать ярлык на рабочем столе(MFC, API, но желательно не COM...)?

Как из программы сменить обои на рабочем столе? - C++
Собственно, сабж!:) Даже не знаю, где копать. Поверхностный взгляд на MSDN никаких идей не принес:(

Убрать значек щита с иконки программы на рабочем столе! - C++
Здравствуйте! Устанавливаю программу, создаю значок на рабочем столе. windows 7 ставит на мой ярлык еще значок щита. Как обойти программно...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
LaГushan
124 / 124 / 14
Регистрация: 12.03.2011
Сообщений: 227
23.03.2011, 10:18 #2
Видимо надо копать в сторону EnumWindows
0
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;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2011, 10:38
Привет! Вот еще темы с ответами:

Список видимых окон - C++
Добрый день. В с++ практически ничего не понимаю. Нужно получить список всех видимых окон. Я нашла такой код на форуме: BOOL...

Массив структур: вывести данные о рабочем с наибольшей зарплатой и наименьшим стажем - C++
Дана информация о пяти рабочих цеха. Запись имеет вид: фамилия, размер зарплаты, стаж работы. Вывести данные о рабочем с наибольшей...

Список существующих окон на рабочем столе - C++ WinAPI
Используя функции WINAPI создать приложение, которое выводит список всех существующих на рабочем столе окон (их заголовки). Функции: ...

Распознавание окон на рабочем столе - C++ WinAPI
Необходимо написать программу, которая в Виндовсе обнаруживает все окна панели, содержимое рабочего стола, количество и их тип, и выдаёт...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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