首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >findwindow不工作,c++

findwindow不工作,c++
EN

Stack Overflow用户
提问于 2015-07-14 13:09:39
回答 4查看 5.4K关注 0票数 0

因此,我试图创建一个伪装解锁器,但在通过findwindow获取进程标识时,我从来没有遇到过困难。

但是现在我试图找到黑色操作系统2的proc id,但是窗口名不起作用。

使命召唤:黑色操作II

代码:

代码语言:javascript
复制
#include <iostream>
#include <Windows.h>
#include <tchar.h>

using namespace std;

int main(){

    HWND hWnd = FindWindow(0, _T("Call of Duty®: Black Ops II - Multiplayer"));

    if(hWnd){
        cout << "window found" << endl;
    }

    return 0;
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-07-14 13:24:57

FindWindow工作正常。造成您的问题的可能原因是:

  1. 你有编码错误。您应该使用Unicode API: HWND hWnd = FindWindowW(NULL,L“使命召唤:黑色操作II -多玩家”);
  2. 没有带有该窗口文本的顶层窗口。使用像Spy++这样的工具来检查它。

您还应该确保仔细阅读文档。它具体规定如下:

如果函数失败,则返回值为NULL。要获得扩展错误信息,请调用GetLastError

您应该按它说的做,并在失败时调用GetLastError

票数 2
EN

Stack Overflow用户

发布于 2015-07-14 13:16:17

看起来注册的符号可能是unicode,您需要使用FindWindowW()

Unicode和ANSI名称 FindWindowW (Unicode)和FindWindowA (ANSI)

或者,您可以使用FindWindowEx()并搜索窗口类名。

票数 4
EN

Stack Overflow用户

发布于 2015-07-14 13:25:23

我会尝试逐类查找窗口,因为应用程序可能会更改其标题,而且类名通常没有花哨的字符。如果您不知道,请查找一些工具(Spy++ +,我认为它是随Visual一起提供的),或者使用EnumWindowsGetClassName创建一个带有简单工具的列表

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31407584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档