WinApi FindWindow由标题的一部分组成

时间:2011-10-30 02:35:58

标签: winapi findwindow

如果我只知道其标题的一部分及其className,我如何获取窗口的描述符?

2 个答案:

答案 0 :(得分:5)

FindWindow()需要完整标题。在循环中使用EnumWindows()GetWindow()来枚举所有可用的窗口,在每个窗口上调用GetClassName()GetWindowText(),并将这些值与搜索条件进行比较,直至找到一场比赛。

答案 1 :(得分:2)

这样的事情:

BOOL CALLBACK EnumWindowsProc( HWND hwnd, LPARAM lParam ) {
  wchar_t   lpClassName[128] = {0};
  MYSTRUCT* MS_INFO          = ( MYSTRUCT* )lParam;

  GetClassName( hwnd, lpClassName, _countof( lpClassName ) );
  if( strstr( lpClassName, MS_INFO -> lpClassName ) ) {
    wchar_t lpWindowName[128] = {0};
    GetWindowText( hwnd, lpWindowName, _countof( lpWindowName ) );

    if( strstr( lpWindowName, MS_INFO -> lpWindowName ) ) {
      ...
    }
  }
}