C++ 我能详细解释一下这篇C++;密码

C++ 我能详细解释一下这篇C++;密码,c++,windows,C++,Windows,我想创建一个键盘记录器。我找到了一个关于它的教程,并且我正确地编码了它,它工作了。我基本上理解所有代码,除了隐形方法: void Stealth() { HWND stealth; AllocConsole(); stealth = FindWindowA("ConsoleWindowClass", NULL); ShowWindow(stealth,SW_HIDE); } 如果有人能给我一行一行地分析一下这个方法中发生的事情,那将是绝对令人惊讶的 HWND

我想创建一个键盘记录器。我找到了一个关于它的教程,并且我正确地编码了它,它工作了。我基本上理解所有代码,除了隐形方法:

void Stealth()
{

    HWND stealth;
    AllocConsole();
    stealth = FindWindowA("ConsoleWindowClass", NULL);
    ShowWindow(stealth,SW_HIDE);
}
如果有人能给我一行一行地分析一下这个方法中发生的事情,那将是绝对令人惊讶的

HWND stealth;
声明一个窗口句柄

AllocConsole();
为调用进程分配新控制台

stealth = FindWindowA("ConsoleWindowClass", NULL);
查找类名为“ConsoleWindowClass”的窗口句柄


隐藏它。

是的,我当然试过谷歌。我已经寻找了每一个具体的方法和对象,但都没有那么大的帮助。当然,这是我最后的选择。“当我看到这些语言有多么相似时,我必须说我欣喜若狂。”-不要这样,因为它们不是。不要让语法相似性欺骗你,java和C++是完全不同的语言。我删除了我的答案,因为它并没有真正回答你的问题。但是更好的选择是使用windows子系统,它一开始不会创建控制台窗口@Ed S,我一定会记住这一点。谢谢你的提醒。我觉得随着我对这两种语言的深入研究,这一点对我来说会更加明显。@LukaD谢谢!我一定会看一看的!这不是会隐藏每个控制台窗口吗?@LukaD
隐身
是名为“ConsoleWindowClass”的窗口的句柄。不用了,非常感谢!现在这就更有意义了@LukaD,如果有多个控制台窗口,它将返回找到的第一个控制台窗口。调用
FindWindowA
不会返回名为“ConsoleWindowClass”的窗口。它查找类名为“ConsoleWindowClass”的第一个窗口(对于first的某些定义)。
ShowWindow(stealth,SW_HIDE);