Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - PeekMessage не работает должным образом

Ответить
Настройки темы
C/C++ - PeekMessage не работает должным образом

Новый участник


Сообщения: 21
Благодарности: 0

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
#include<windows.h>
#include <iostream>
HHOOK _hook;
HINSTANCE hinstDLL; 
int a;
LRESULT CALLBACK KeyProc(int code, WPARAM wParam, LPARAM lParam){
KBDLLHOOKSTRUCT * pStruct = (KBDLLHOOKSTRUCT *)lParam;
a=pStruct->vkCode;
 return CallNextHookEx(_hook, code, wParam, lParam);
}
void SetHook(){
    HINSTANCE hinstDLL = GetModuleHandle(NULL);
    if (!(_hook = SetWindowsHookEx(WH_KEYBOARD_LL,KeyProc, hinstDLL,0)))
    {
        MessageBox(NULL, "Failed to install hook!", "Error", MB_ICONERROR);
    }
}
int main(){
    MSG msg;
    SetHook();
while(true){
system("cls");
     std::cout<<a;
    PeekMessage(&msg,NULL,0,0,0);
}
}
Эта программа выводит код нажатой клавиши,даже когда она неактивна.После вывода нескольких клавиш программа даёт сбой.Я заменил PeekMessage на GetMessage и всё работало стабильно,но мне такой вариант не подходит.Помогите сделать программу стабильной с PeekMessage.
Amir_05_05 на форуме Сообщить модератору о нарушении

Отправлено: 17:25, 08-01-2016

 

Аватара для K.A.V.

Ленивый кусок мяса


Contributor


Сообщения: 1986
Благодарности: 723

Профиль | Сайт | Отправить PM | Цитировать


У меня ваш код работает без сбоя

Цитата амир-05:
После вывода нескольких клавиш программа даёт сбой »
Ну так, смотрите, на чем ваш код спотыкается, отладчиком, GetLastError...Не слышали о таких штуках? Если не слышали - самое время загуглить и познакомиться с этими двумя замечательным возможностями из мира программирования

-------
[Справочник по командам Windows] -- [Справочник по NSIS] -- [SFX Creator - для создания SFX архивов]


Отправлено: 13:56, 10-01-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - PeekMessage не работает должным образом

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - start /wait Не работает должным образом. angel_lyucifer Скриптовые языки администрирования Windows 9 05-12-2015 19:33
Разное - Javascript в IE10, или skype не работает должным образом Anton1995 Microsoft Windows 8 и 8.1 14 21-04-2012 00:51
Службы - Служба прожига дисков Windows работает не должным образом 988essence Microsoft Windows 2000/XP 2 20-10-2010 14:57
V. 5.5/2000/2003 - Exchange 2003 не работает должным образом illznn Microsoft Exchange Server 6 15-04-2009 09:23
FreeBSD - altq не работает должным образом KOTISHE Общий по FreeBSD 1 23-03-2008 22:17




 
Переход