Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ WinAPI Как изменить горячие клавиши(сочетание клавиш)? https://www.cyberforum.ru/ win-api/ thread1698209.html
Как сделать чтобы программа изменяла установленные по умолчанию сочетания клавиш,изменяла то, что происходит при их нажатии, например как сделать чтобы, когда нажимаешь Shift + F4 + Enter, открывался блокнот?
C++ WinAPI Доработка 2048
Добрый день. пишу 2048 в ознакомительных целях в visual studio. #include <windows.h> #include "board.h" #include <tchar.h> using namespace std;
C++ WinAPI Как присоединиться к чужому процессу? Вообщем хотелось бы, чтобы программа присоединилась к чужому процессу, который уже идет на компе и его имя известно.Не уверен что так можно сделать, но если можно сделать, то как? https://www.cyberforum.ru/ win-api/ thread1698180.html C++ WinAPI Виртуальный код клавмши точка У меня функция winapi запрашивает виртуальный код клавиши, типа VK_KEYUP, VK_DELETE и тп. А какой код у точки - "." ? https://www.cyberforum.ru/ win-api/ thread1698120.html
Непонятки с DLL C++ WinAPI
Доброго времени суток всем. Выявил такую проблему с dll. Не могу разобраться почему так. Есть dll с установкой хука. В этой же dll есть экземпляр некоторого класса. Почему-то переменная в экземпляре класса оказывается равной NULL. #pragma data_seg("Shared") static HHOOK g_hook; static Foo_class Foo; //проблемный объект #pragma data_seg() #pragma comment(linker, "/section:Shared,rws") ...
C++ WinAPI Read ProcessMemory from kernel driver Коллеги, помогите пожалста. ULONG_PTR address; BYTE *Buffer; Buffer = (BYTE *) ExAllocatePool(NonPagedPool, 4096); if (Buffer == NULL) { DbgPrint("Error allocate out buffer..."); return STATUS_INVALID_PARAMETER; } https://www.cyberforum.ru/ win-api/ thread1697516.html
C++ WinAPI ReadFile WriteFile на примере https://www.cyberforum.ru/ win-api/ thread1697433.html
день добрый есть проект типа напоминания задача сохранять данные в файл при добавлении и считывать их от туда при открытии программы hFile = CreateFile(TEXT("BaseReminder.txt"), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); for (size_t i = 0; i < baseReminder.size(); i++) { WriteFile(hFile, &baseReminder, sizeof(prompt), &dwByte, NULL);
Асинхронное воспроизведение нескольких звуков C++ WinAPI
Всем привет, объясние плиз, что я делаю не так. Есть две функции, в первой играет фоновая музыка, задаю параметры PlaySound("C:\\snd.wav", SND_FILENAME | SND_ASYNC | SND_LOOP).И вторая функция в которой по клику на кнопку воспроизводится звук PlaySound("C:\\ding.wav", SND_FILENAME | SND_ASYNC | SND_NOSTOP). На MSDN прочел, что параметр SND_NOSTOP как раз таки позволяет воспроизвести звук, не...
C++ WinAPI Как сделать чтобы программа делала клик мыши? Как сделать чтобы программа делала клик мыши? То есть программа, словно юзер, наводит курсор на что-то и кликает. Как навести курсор, я знаю, а вот как сделать клик? https://www.cyberforum.ru/ win-api/ thread1696962.html C++ WinAPI Создание дочернего окна вызовом из меню Добрый день. Только начал изучать C++. Подскажите как прописать создание дочернего окна из меню. Причём окно должно открываться с уже заданными параметрами. На данный момент у меня вот такой код: // Моя программа.cpp: определяет точку входа для приложения. // #include "stdafx.h" #include "Моя программа.h" #include "windows.h" #include "windowsx.h" https://www.cyberforum.ru/ win-api/ thread1696758.html
Разработка своего Консольного Файлового Менеджера на c++ C++ WinAPI
Добрый вечер, уважаемые Форумчане! Я студент первого курса. Один из предметов - программирование. У нас курсовая работа и нам дали выбор. Я взялся делать Файловый Менеджер. И мне нужна помощь тех, кому не жалко и интересно помочь. На данный момент, собственно, в начале, я разбираюсь с функциями WINAPI, WIN32_FIND_DATA и ползаю по сайту майкрософт в поиске функций для вывода дискового...
C++ WinAPI Функции для работы с консолью https://www.cyberforum.ru/ win-api/ thread1696375.html
Добрый день. Уже начал писать клиент-серверное приложение на WIN API. Собственно сама проблема: нужно из консольного приложения с++ отправить команду в консоль коммандного процессора и получить ответ. Например, отправляю ipconfig, и получаю ответ. Как я понял, отправить можно черезе system();, но вот как получить ответ?
0 / 0 / 0
Регистрация: 18.05.2013
Сообщений: 25
0

Windows hooks: wh_shell - C++ WinAPI - Ответ 8952702

30.03.2016, 09:11. Показов 1187. Ответов 5
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, дело в следующем:
Есть задача реализовать приложение, выводящее сообщение при закрытии окна верхнего уровня(подразумевается, что это окно, являющееся активным)
Написал приложение, использующее хук wh_shell, который работает для окон верхнего уровня. Но он реагирует на закрытие любого окна. Что я делаю не так?
HookDll.dll
C++
1
2
3
4
5
6
7
8
#include <windows.h>
extern "C" __declspec(dllexport)
 LRESULT CALLBACK HookProcess( int nCode, WPARAM wParam, LPARAM lParam)
{   
    if( nCode == HSHELL_WINDOWDESTROYED)
   MessageBox( NULL, TEXT("Закрывается окно верхнего уровня"),NULL,MB_OK);
  return CallNextHookEx( NULL, nCode, wParam, lParam);  
}
MainApp
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
59
60
61
#include <windows.h>
#include <tchar.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
HINSTANCE HookInstance;
HOOKPROC HookProcess;
HHOOK hHook;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
    TCHAR szAppName[] = TEXT(" ");
    HWND hwnd;
    MSG msg;
    WNDCLASSEX wndclass;
    wndclass.cbSize = sizeof(wndclass);
    wndclass.style = CS_HREDRAW | CS_VREDRAW;
    wndclass.lpfnWndProc = WndProc;
    wndclass.cbClsExtra = 0;
    wndclass.cbWndExtra = 0;
    wndclass.hInstance = hInstance;
    wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
    wndclass.hbrBackground =(HBRUSH) GetStockObject(WHITE_BRUSH);
    wndclass.lpszMenuName = NULL;
    wndclass.lpszClassName = szAppName;
    wndclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
    RegisterClassEx(&wndclass);
    hwnd = CreateWindow(szAppName,TEXT(""), WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT,  NULL, NULL, hInstance, NULL );
    ShowWindow(hwnd, iCmdShow);
    UpdateWindow(hwnd);
 
     HookInstance=LoadLibrary(TEXT("HookDll.dll"));
     HookProcess=(HOOKPROC)GetProcAddress(HookInstance,"_HookProcess@12");
     hHook=SetWindowsHookEx(WH_SHELL,HookProcess,HookInstance,0);   
    while(GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
    UnhookWindowsHookEx(hHook);
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
    HDC hdc;
    PAINTSTRUCT ps;
    switch(iMsg)
    {
    case WM_CREATE :
        hdc = GetDC(hwnd);  
            ReleaseDC(hwnd, hdc);   
        return 0;
    case WM_PAINT :
        hdc = BeginPaint(hwnd, &ps);    
        TextOut(hdc, 50, 50,TEXT("Приложение запущено"),60);
        EndPaint(hwnd, &ps);
        return 0;   
    case WM_DESTROY :
        PostQuitMessage(0);
        return 0;
    }
    return DefWindowProc(hwnd, iMsg, wParam, lParam);
}
Добавлено через 9 часов 49 минут

Добавлено через 1 час 21 минуту
Может быть, использовать WH_CBT? Хотя он даёт тот же результат

Вернуться к обсуждению:
Windows hooks: wh_shell C++ WinAPI
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.03.2016, 09:11
Готовые ответы и решения:

Windows hooks
Как сделать чтобы программа при нажатии j открывала например калькулятор? В интернете информация по...

Windows Hooks на C#
Добрый день. В интернете нашел множество статей с подробным описанием и примерами установки...

C# Winapi Hooks
У меня есть программа которая использует winapi PostMessage чтобы посылать окну сообщения, но это...

И опять. Hooks
Доброе время суток, товарищи. Пытаюсь поймать WM_USER + 31845... Соответственно -...

5
30.03.2016, 09:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.03.2016, 09:11
Помогаю со студенческими работами здесь

Создание библиотеки. Mouse and keyboard hooks
Хочу написать программу, которая будет логировать время работы пользователя над одним таском. Весь...

Hooks (имитация нажатия левой кнопки мышки)
Полная задача состоит в том, что пользователь будет выбирать окно. Когда он будет нажимать например...

Отличные DLL-ки для установки системных "хуков" (system-wide hooks)
Перерыл за последние несколько дней кучу ресурсов Сети на тему установки системных хуков. Наконец,...

Windows 8.1 обновилась недавно до Windows 10, при этом перестала запускаться Windows 7, установленная второй
Купил ноут, на котором была предустановлена Windows 8.1. Но так как некоторые программы под ней не...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru