NyanCoder

UnrealLiveCoding_HotkeyRemap

Jun 2nd, 2023
446
1
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.90 KB | None | 1 0
  1. #include <Windows.h>
  2. #include <cstdio>
  3.  
  4. LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
  5. {
  6.     switch (msg)
  7.     {
  8.     /*case WM_KEYDOWN:
  9.         printf("KeyDown: %d\n", (int)wParam);
  10.         break;*/
  11.     case WM_DESTROY:
  12.         PostQuitMessage(0);
  13.         break;
  14.     default:
  15.         return DefWindowProcW(hWnd, msg, wParam, lParam);
  16.     }
  17.     return 0;
  18. }
  19.  
  20. int main(int argc, char** argv)
  21. {
  22.     WNDCLASSEXW wc = {
  23.         .cbSize = sizeof(WNDCLASSEXW),
  24.         .lpfnWndProc = WndProc,
  25.         .hCursor = LoadCursorW(nullptr, IDC_ARROW),
  26.         .lpszClassName = L"Window"
  27.     };
  28.     RegisterClassExW(&wc);
  29.     HWND hWnd = CreateWindowExW(0L, L"Window", L"UELiveCodingMacro", WS_OVERLAPPEDWINDOW | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, 300, 100, nullptr, nullptr, nullptr, nullptr);
  30.    
  31.     if (!hWnd)
  32.         return 1;
  33.  
  34.     RegisterHotKey(hWnd, 0x100, 0, VK_F7);
  35.  
  36.     MSG msg = { 0 };
  37.     while (GetMessageW(&msg, hWnd, 0, 0) > 0)
  38.     {
  39.         if (msg.message == WM_HOTKEY)
  40.         {
  41.             if (msg.wParam == 0x100)
  42.             {
  43.                 printf("hotkey\n");
  44.                 static INPUT inputs[3] = {
  45.                     {
  46.                         .type = INPUT_KEYBOARD,
  47.                         .ki = {
  48.                             .wVk = VK_LCONTROL
  49.                         }
  50.                     },
  51.                     {
  52.                         .type = INPUT_KEYBOARD,
  53.                         .ki = {
  54.                             .wVk = VK_LMENU
  55.                         }
  56.                     },
  57.                     {
  58.                         .type = INPUT_KEYBOARD,
  59.                         .ki = {
  60.                             .wVk = VK_F11
  61.                         }
  62.                     }
  63.                 };
  64.                 SendInput(3, inputs, sizeof(INPUT));
  65.                 Sleep(20);
  66.                 static INPUT inputs1[3] = {
  67.                     {
  68.                         .type = INPUT_KEYBOARD,
  69.                         .ki = {
  70.                             .wVk = VK_F11,
  71.                             .dwFlags = KEYEVENTF_KEYUP
  72.                         }
  73.                     },
  74.                     {
  75.                         .type = INPUT_KEYBOARD,
  76.                         .ki = {
  77.                             .wVk = VK_LMENU,
  78.                             .dwFlags = KEYEVENTF_KEYUP
  79.                         }
  80.                     },
  81.                     {
  82.                         .type = INPUT_KEYBOARD,
  83.                         .ki = {
  84.                             .wVk = VK_LCONTROL,
  85.                             .dwFlags = KEYEVENTF_KEYUP
  86.                         }
  87.                     }
  88.                 };
  89.                 SendInput(3, inputs1, sizeof(INPUT));
  90.             }
  91.         }
  92.  
  93.         TranslateMessage(&msg);
  94.         DispatchMessageW(&msg);
  95.     }
  96.  
  97.     return 0;
  98. }
Advertisement
Add Comment
Please, Sign In to add comment