Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.01.2018, 12:26   #1
DarkJoker
Пользователь
 
Регистрация: 12.08.2014
Сообщений: 25
Вопрос выводит в консоль дважды

Здравствуйте, подскажите пожалуйста, почему выводит код клавиши дважды? и как это пофиксить?
Код:
#define _CRT_SECURE_NO_WARNINGS

#include "stdafx.h"
#include "Windows.h"
#include <iostream>
using namespace std;

HHOOK hookHandle;

LRESULT CALLBACK keyHandler(int nCode, WPARAM wParam, LPARAM lParam);

int _tmain(int argc, _TCHAR* argv[]) {

	hookHandle = SetWindowsHookEx(WH_KEYBOARD_LL, keyHandler, NULL, 0);

	if (hookHandle == NULL) {
		cout << "ERROR CREATING HOOK: ";
		cout << GetLastError() << endl;
		getchar();
		return 0;
	}

	MSG message;

	while (GetMessage(&message, NULL, 0, 0) != 0) {
		TranslateMessage(&message);
		DispatchMessage(&message);
	}

	cout << "Press any key to quit...";


	UnhookWindowsHookEx(hookHandle);

	return 0;
}


LRESULT CALLBACK keyHandler(int nCode, WPARAM wParam, LPARAM lParam) {
	cout << "Hello!" << endl;

	// Checks whether params contain action about keystroke
	if (nCode == HC_ACTION) {
		cout << ((KBDLLHOOKSTRUCT *)lParam)->vkCode << endl;
	}

	return CallNextHookEx(hookHandle, nCode,
		wParam, lParam);
}
DarkJoker вне форума Ответить с цитированием
Старый 05.01.2018, 14:05   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Потому что клавиша сначала нажимается, потом отпускается.
Прочитайте что содержит WPARAM.
waleri вне форума Ответить с цитированием
Старый 05.01.2018, 18:33   #3
DarkJoker
Пользователь
 
Регистрация: 12.08.2014
Сообщений: 25
По умолчанию

Спасибо! разобрался =)
DarkJoker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MS Visual Studio C++ проблема с калькулятором не выводит корень(не консоль) Spfrezen Помощь студентам 1 08.02.2015 11:32
с++,циклическая очередь, сразу норм выводит, а потом на где-то логика нарушается и неправильно выводит nati_94 Помощь студентам 2 17.03.2013 14:29
Дважды два. jojahti Свободное общение 68 29.01.2010 10:53
Почему выполняется дважды? MAKEDON Помощь студентам 1 17.05.2009 15:06