C++ FindWindowA Can';找不到进程

C++ FindWindowA Can';找不到进程,c++,winapi,C++,Winapi,我试图检查一个游戏的值,但似乎FindWindowA找不到这个游戏过程,我尝试了其他游戏,但它成功了。我检查了Process Hacker如何调用窗口,它仍然与代码中的窗口相同,但仍然不起作用 First project.cpp:主项目文件。 #include <iostream> #include <Windows.h> #include <string> using namespace std; DWORD pid; DWORD Ammo = 0x01E

我试图检查一个游戏的值,但似乎
FindWindowA
找不到这个游戏过程,我尝试了其他游戏,但它成功了。我检查了Process Hacker如何调用窗口,它仍然与代码中的窗口相同,但仍然不起作用

First project.cpp:主项目文件。

#include <iostream>
#include <Windows.h>
#include <string>
using namespace std;

DWORD pid;
DWORD Ammo = 0x01E7A938;
int MyAmmo;


int main()
{
    HWND hWnd = FindWindowA(0, ("War Thunder Client"));    
GetWindowThreadProcessId(hWnd, &pid);
    HANDLE pHandle = OpenProcess(PROCESS_VM_READ, FALSE, pid);
    while (true)
    {
        cout << MyAmmo << endl;
        Sleep(100);
        system("CLS");
    }
        system("Pause");
}
#包括
#包括
#包括
使用名称空间std;
德沃德pid;
DWORD Ammo=0x01E7A938;
int MyAmmo;
int main()
{
HWND HWND=FindWindowA(0,(“战雷客户端”);
GetWindowThreadProcessId(hWnd和pid);
HANDLE pHandle=OpenProcess(PROCESS\u VM\u READ,FALSE,pid);
while(true)
{

cout首先,您应该检查
FindWindowA
是否确实找到了您的窗口。如果没有找到,则
hWnd
的值将为
NULL


其次,
MyAmmo
的值并不是到处都设置的。它被初始化为
0
,因为它是一个全局变量,但是它的值不会在任何地方更改。

“我知道它是真正的进程名”-流程没有名称。这个问题不清楚,无法回答。建议关闭。我明确表示,我没有理解你的观点,我有点确定你甚至不知道具体需要什么。此外,不一致的格式是一个草率思考者的信号。你需要清理你头脑中的混乱rst.调用这些函数时不检查错误。看起来您没有阅读任何文档。您可能没有访问该进程所需的权限。如果您检查了错误代码,您肯定会知道。此代码是一场灾难,展示了各种可怕的做法,甚至没有用,因为它是硬代码每次重新打开窗口时都会更改的窗口句柄。您可以通过阅读文档和思考自己正在做的事情来帮助自己。复制随机的代码并希望它们能做一些有用的事情是没有建设性的。您希望我们为您做这件事,还是您想学习?请记住,本网站与您无关你的问题。我们的目标是建立广泛有用的问答主题。我如何检查FindWindowA是否真的找到了window?感谢帮助
if(hWnd){\*window found do something*\}{cerr好的,它确实找到了窗口,但没有找到值,wierd您没有在该值中读取任何内容。正如我之前所说的,
MyAmmo
的属性没有更改。您应该使用类似于
ReadProcessMemory
的内容。代码不读取任何内容,@strane。例如,地址变量没有被使用。我建议您稍微考虑一下让我们为你做那件事。