SPY++ 7.10.NET里提取的! 点击下载该文件
http://www.5ivb.net/club/UploadFile/200453095437byUID34770.rar然后可以得到类名

解决方案 »

  1.   

    我用vs2003自带的spy++查看了的,类名很长类似与这个形式WindowsForms10.Window.8.app3.但是我用FindWindow("WindowsForms10.Window.8.app3",null)查找还是找不到.
    还有一点不明白,我看了一些文章里都把FindWindow定义成long,很多文章是关于vb的
    但在c#里如果如果把FindWindow定义成long则如果没有找到返回值也不是0,我看了高位不是0,低位是0.我想问问windows xp系统中句柄是几位,就定义成int类型行不行?
      

  2.   

    [DllImport("user32.dll", EntryPoint="FindWindow")]
    public static extern int FindWindow (string lpClassName,string lpWindowName);
    FindWindow("WindowsForms10.Window.8.app3",null)
    FindWindow(类名,标题)
      

  3.   

    不行啊,返回的句柄不正确.
    我用spy++看了,我的主窗口和后来弹出的窗口类名都是"WindowsForms10.Window.8.app3".
      

  4.   

    所以C#的编译运行的类名都是WindowsForms10.Window.8.app3?
      

  5.   

    是指窗体通过哪个类生成的。你尝试不用MFC,直接用API建立windows应用程序的时候,要用RegisterClass注册窗体的。就是这个名字。你可以从这里开始看起:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/findwindow.asp先看这个解释,然后看一下RegisterClass这个链接,然后再看一下CreateWindow,注意里面的第一个参数lpClassName,然后再看一下WNDCLASS Structure。看完你就明白了,哪个类名没什么意义,null掉算了。很少有可能窗体名称一样而类名不一样的情况。
      

  6.   

    [DllImport("user32.dll", EntryPoint="FindWindow")]
    public static extern int FindWindow (
    string lpClassName,
    string lpWindowName
    );  lpClassName ----  String,指向包含了窗口类名的空中止(C语言)字串的指针;或设为零,表示接收任何类  lpWindowName ---  String,指向包含了窗口文本(或标签)的空中止(C语言)字串的指针;或设为零,表示接收任何窗口标题