通过SPY++得到窗口的类名和标题文本后,用HWND hwind = ::FindWindow(_T("#32770"),_T("******V3.0: ****.EXE - 应用程序错误"));返回句柄失败,用GetLastError()却返回的是0.
这是怎么回事呢?为什么获取句柄会失败呢?

解决方案 »

  1.   

    T("******V3.0: ****.EXE - 应用程序错误")中的“-”要确定是中文还是英文的,窗口名传NULL,只传ClassName试试
      

  2.   

    HWND   h=FindWindow(NULL, "我的程序 "); 
    这样就得到了当前桌面上窗口标题为“我的程序”的窗口的窗口句柄如果你不知道你要找的窗口的标题,只知道窗口的类名   
    那么把上面的那行代码的第一个参数   NULL改成类名,把后面的哪个参数改成NULL就OK了
      

  3.   

    用spy++工具栏有一个文档上有望远镜的图标,点一下出现一个窗口
    拖动那个窗口的靶心图标到你要查找的窗口上,就可以看到正确的窗口标题、类以及句柄啦
    你在用那个类或窗口标题FindWindow
      

  4.   

    看来大家都忽略了,或说没看清,我现在在FindWindow中用的参数都是从SPY++中得到的……
      

  5.   


    “-”是中文还是英文对这个函数的调用有什么影响呢??
    我用你的方法试过了,不行。还有,函数的参数都是通过SPY++得到的!
      

  6.   


    用SPY++得到的窗口标题为:"******V3.0: ****.EXE - 应用程序错误,应该不会有问题吧??
      

  7.   

    FindWindow does set last error in thread