C++ 芬德温没有';t工作c++;
所以我试图创建一个迷彩解锁器,但我从来没有遇到过通过findwindow获取进程id的问题 但是现在我试图找到黑色行动2的进程id,但是窗口名不起作用 使命召唤®:黑色行动II 代码:C++ 芬德温没有';t工作c++;,c++,windows,winapi,C++,Windows,Winapi,所以我试图创建一个迷彩解锁器,但我从来没有遇到过通过findwindow获取进程id的问题 但是现在我试图找到黑色行动2的进程id,但是窗口名不起作用 使命召唤®:黑色行动II 代码: #包括 #包括 #包括 使用名称空间std; int main(){ HWND HWND=FindWindow(0,_T(“使命召唤®:黑色行动II-多人游戏”); 如果(hWnd){ cout看起来注册的符号可能是unicode,您需要使用: Unicode和ANSI名称 FindWindowW(Unicode
#包括
#包括
#包括
使用名称空间std;
int main(){
HWND HWND=FindWindow(0,_T(“使命召唤®:黑色行动II-多人游戏”);
如果(hWnd){
cout看起来注册的符号可能是unicode,您需要使用:
Unicode和ANSI名称
FindWindowW(Unicode)和FindWindowA(ANSI)
或者,您可以使用并搜索窗口类名。FindWindow
工作正常。问题的可能原因是:
您有一个编码错误。您应该使用Unicode API:
HWND hWnd = FindWindowW(NULL, L"Call of Duty®: Black Ops II - Multiplayer");
没有包含该窗口文本的顶级窗口。请使用Spy++之类的工具进行检查
您还应确保仔细阅读文档。具体而言,文档说明如下:
如果函数失败,返回值为NULL。要获取扩展的错误信息,请调用GetLastError
您应该按照它所说的做,并在出现故障时调用GetLastError
。我会尝试按类查找窗口,因为应用程序可能会更改其标题,并且类名通常没有花哨的字符。如果您不知道它们,请寻找一些工具(Spy+++我认为它随Visual Studio提供)或者使用EnumWindows
和GetClassName
FindWindowA为我工作:)用一个简单的工具创建一个列表,所以我刚从tchar改为普通的HWND HWND=FindWindowA(0,(“任务召唤®:黑色Ops II-多人游戏”));除非您打算同时提供ASCII和Unicode版本,否则您真的不需要再使用\u t()
宏(并删除tchar.h
)。只需使用FindWindowW
和宽字符串(L”“
).l2p,noob.Er…我的意思是…你得到了什么错误代码?我发现了问题,在没有错误的地方,问题是它没有发现窗口不普遍适用,而且最肯定的是,没有任何你想要推荐的东西。它失败的速度会快于你将线程的区域设置更改回正常状态的速度。FindWindow()
还可以搜索类名,不需要Ex版本。
HWND hWnd = FindWindowW(NULL, L"Call of Duty®: Black Ops II - Multiplayer");