我要取一程序的主窗口句柄,但这程序有些特殊:
  1,每次启动后用SPY++查看它的类名时都会不一样,具体表现在类名的最后几个数字串变化,类名的前面部分不变。
  2,每次启动程序后,它的主窗口标题栏文字的前面部分总是“AABBCCDD”,后面部分是变化的。
有了上面两个变化,我用FindWindow(nil,PChar(标题))是不可行的。
 请前辈们给小弟一条活路,谢谢指教

解决方案 »

  1.   

    EnumWindows!
    枚舉系統所有頂層窗口
    !
      

  2.   

    对不起,上面的回答错地方了......为了弥补,回答你这个问题吧.类名/窗口标题会变,EXE文件名不会变吧
    枚举所有顶级窗口,根据窗口ID可以得到进程ID,然后对比进程的文件名.
    如果找到的不是你所需要的窗口(你要找的不是顶级窗口),可以再根据进程ID用EnumThreadWindows枚举进程的所有窗口,再得到窗口类名及标题并判断