WinApi FindWindow 通过标题的一部分

发布于 2024-12-12 08:26:22 字数 36 浏览 3 评论 0原文

如果我只知道窗口标题和类名的一部分,如何获取窗口的描述符?

How I can get a window's descriptor if I know only a part of its title and its className?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

从此见与不见 2024-12-19 08:26:23

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

FindWindow() requires the full title. Use EnumWindows(), or GetWindow()in a loop, to enumerate through all available windows, calling GetClassName() and GetWindowText()on each one and compare the values to your search criteria until you find a match.

风筝有风,海豚有海 2024-12-19 08:26:23

像这样的事情:

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 ) ) {
      ...
    }
  }
}

Something like this:

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 ) ) {
      ...
    }
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文