후킹을 이용해 키가 간섭받는 일 없도록 만들었습니다
근데 여기서 esc를 눌렀을 때 나가게는 어떻게 하나요?


#include <Windows.h>

#include<stack>

#include <iostream>


using namespace std;


void HideWindow();

void ShowWindow();

void Sound();


stack<HWND> st = {};


char c;

HHOOK hook;


LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)

{

    if (nCode >= 0)

    {

        KBDLLHOOKSTRUCT* kbStruct = (KBDLLHOOKSTRUCT*)lParam;

        if (wParam == WM_KEYDOWN)

        {

            // F1 키를 누른 경우

            if (kbStruct->vkCode == VK_F1)

            {

                ShowWindow();

                return 1;

            }

            else if (kbStruct->vkCode == VK_F2)

            {


                HideWindow();

                return 1;

            }

            else if (kbStruct->vkCode == VK_ESCAPE)

            {

                ShowWindow();

                ShowWindow(GetConsoleWindow(), SW_SHOW);

            }

            else

            {

                // 다른 키를 누른 경우에는 처리를 계속합니다.

                std::cout << "Key pressed: " << kbStruct->vkCode << std::endl;

            }

        }

    }

    // 후킹된 이벤트 처리를 계속합니다.

    return CallNextHookEx(hook, nCode, wParam, lParam);

}



int main()

{

    ShowWindow(GetConsoleWindow(), SW_HIDE);

    hook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardProc, NULL, 0);

    MSG msg;

    while (GetMessage(&msg, NULL, 0, 0))

    {

        TranslateMessage(&msg);

        DispatchMessage(&msg);

    }

    UnhookWindowsHookEx(hook);

}


bool func(char* a)

{

    return strcmp(a, "Shell_TrayWnd")&& strcmp(a, "Progman");

}


void HideWindow()

{

    HWND hWnd;

    POINT point;


    GetCursorPos(&point);

    hWnd = WindowFromPoint(point);


    char clsName_v[256]; 

    HWND parent = GetParent(hWnd), parent2;

    while (1) {

        parent2 = GetParent(parent);

        if (parent2 == 0)

            break;

        parent = parent2;

    }


    if (parent != 0)

        hWnd = parent;


    GetClassNameA(hWnd, clsName_v, 256);

    std::cout << hWnd << "\n";

    std::cout << clsName_v << "\n";

    if (func(clsName_v))

    {

        st.push(hWnd);

        ShowWindow(hWnd, SW_HIDE);

    }

}


void ShowWindow()

{

    while (!st.empty())

    {

        ShowWindow(st.top(), SW_SHOW);

        st.pop();

    }

}