Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
38 / 38 / 22
Регистрация: 16.04.2013
Сообщений: 327
Записей в блоге: 1

SetWindowsHookEx + windows forms

17.01.2015, 22:48. Показов 960. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создал проект win forms с помощью студии 2010.
В конструктор формы добавил
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Form1(void)
        {
            InitializeComponent();
            //
            //TODO: добавьте код конструктора
            //
            HOOKPROC hkprcSysMsg;
            static HINSTANCE hinstDLL; 
            static HHOOK hhookSysMsg; 
            
            hinstDLL = LoadLibrary(L"my_dll.dll");
            hkprcSysMsg = (HOOKPROC)GetProcAddress(hinstDLL, "LowLevelKeyboardProc"); 
            hhookSysMsg=SetWindowsHookEx(WH_KEYBOARD_LL,hkprcSysMsg,hinstDLL,0);
        }
создал dll-ку
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <windows.h>
#include <iostream>
#include <fstream>
#include <iostream>
 
#define DLLEXPORT extern "C" __declspec(dllexport)
DLLEXPORT LRESULT CALLBACK LowLevelKeyboardProc(int code, WPARAM wParam,  LPARAM lParam);
DLLEXPORT int sum(int a,int b);
 
LRESULT CALLBACK LowLevelKeyboardProc(int code, WPARAM wParam,  LPARAM lParam)
{
    std::ofstream myfile;
    myfile.open ("example33.txt");
    myfile << code;
    myfile.close();
    return CallNextHookEx(NULL, code, wParam, lParam);
}
 
int sum(int a,int b)//эта ф-ия дла проверка работы dll-ки
{
    return a+b;
}
в итоге SetWindowsHookEx не сигналит dll-ку. что делаю не так?

Добавлено через 10 часов 10 минут
update

проблема была в том, что имя функции в таблице экспорта отличалось. довесил def файл. теперь проблема в том, что модификатор WH_KEYBOARD реагирует только на окна программы, т.е работает не глобально
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.01.2015, 22:48
Ответы с готовыми решениями:

Windows Forms
Здравствуйте! Господа, не могли бы вы подсказать чайнику какую-нибудь книжечку, где бы можно было почитать о программировании в Visual...

SetWindowsHookEx
HOOKPROC hookproc; HHOOK hhook; HINSTANCE lib; lib = LoadLibrary(L&quot;mydll.dll&quot;); // библиотека с KeyboardProc; hookproc =...

Звук в Windows Forms
Как сделать чтобы проигрывался звук в форме при нажатии кнопки? Помогите пожалуйста кодом либо ссылкой на урок.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.01.2015, 22:48
Помогаю со студенческими работами здесь

Работа с windows forms or others)
Например, у меня есть консольное приложение виндовс. Как сделать из него полноценное окно, где почитать? В visual c++ можно вставить в...

создание Windows Forms Aplication
такой вопросик. Мне поставлена задача, сделать программу(калькулятор) используя &quot;Visual C++ 2005&quot;, но при этом не разрешается...

Windows Forms в Visual Studio, C++
Доброго времени суток, уважаемые программисты! Требуется создать графический интерфейс для приложения в Windows Forms путем...

clr,mfc,windows forms
на чем лучше всего создавать оконный проект в MSVS2010? и как его собрать в 1 exe исполняемый файл ? и чтобы этот 1 exe можно было...

Windows forms, Не работает MessageBox.
Создал три формы: в первой вопрос в label1: Как вас завут?. Пишем в textBox1 ,И жмем на button1; во второй форме вопрос : Сколько вам...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Функция установки текстового статуса в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru