有一个外部运行的程序需要调整大小。对我来说踢球者是标题的一部分是与该实例相关的版本和其他特定信息。我知道应该在不同版本之间保持一致的子字符串。 我已经尝试了Findwindow()函数,如果你有标题的确切用词,但不是当你只有一部分的时候,它可以很好地工作。我也尝试过EnumWindows,但我相信它有相同的局限性(我没有太多的运气)。 我觉得我能做的最简单的事情(如果可能的话)是从图像名称获取窗口句柄,以便进行调整大小。 想法?通过C++获取外部运行程序的窗口句柄
2
A
回答
4
这是我刚上2010 MSVS测试的代码工作的一块完美的作品:这里
#include <stdlib.h>
#include <string.h>
#include <tchar.h>
#include <windows.h>
BOOL CALLBACK FindWindowBySubstr(HWND hwnd, LPARAM substring)
{
const DWORD TITLE_SIZE = 1024;
TCHAR windowTitle[TITLE_SIZE];
if (GetWindowText(hwnd, windowTitle, TITLE_SIZE))
{
//_tprintf(TEXT("%s\n"), windowTitle);
// Uncomment to print all windows being enumerated
if (_tcsstr(windowTitle, LPCTSTR(substring)) != NULL)
{
// We found the window! Stop enumerating.
return false;
}
}
return true; // Need to continue enumerating windows
}
int main()
{
const TCHAR substring[] = TEXT("Substring");
EnumWindows(FindWindowBySubstr, (LPARAM)substring);
}
1
EnumWindows是专门为此而设计的。你创建自己的回调函数传递给EnumWindows,并且它会为它枚举的每个窗口调用你的回调函数,并将它传递给窗口的hwnd。您可以在回调函数内部调用GetWindowText来获取窗口标题并像其他任何文本一样搜索文本。该代码有什么问题?你为什么不发布它?
相关问题
- 1. 获取外部程序句柄
- 2. 获取C#中窗口的句柄#
- 3. 获取窗口的句柄在C#
- 4. 获取顶部窗口句柄(按Z索引排序窗口)
- 5. 通过窗口句柄获取未知进程的名称?
- 6. 如何获取当前C程序的父窗口的句柄?
- 7. 获取窗口句柄
- 8. 通过窗口句柄获取父进程ID
- 9. 获取C子窗口句柄#
- 10. ANSI C&WinAPI:如何从钩子程序获取窗口句柄?
- 11. 通过C#中的点击获取一个流程窗口句柄。
- 12. 运行外部窗口程序的DOSBOX
- 13. C# - 获取活动窗口下的窗口句柄?
- 14. Getpixel()从外部窗口句柄MFC
- 15. 访问外部窗口句柄
- 16. 如何通过PID在autohotkey中获取窗口句柄?
- 17. 从GetWindowThreadProcessId(c#.net 4.0)中获取窗口句柄的进程ID
- 18. 如何获得VBA中执行过程窗口的句柄?
- 19. 获取PyGI中的窗口句柄
- 20. 获取主窗口的句柄在WPF
- 21. 获取窗口的所有句柄
- 22. 获取的窗口句柄在Java中
- 23. 获取SDL 2应用程序的窗口句柄
- 24. 获取应用程序的窗口句柄
- 25. 通过PID获取进程句柄
- 26. C#从窗口句柄获取父进程
- 27. 窗口句柄C#/。NET
- 28. 使用窗口句柄获取IUKOWN
- 29. Python Selenium获取当前窗口句柄
- 30. 如何获取桌面窗口句柄?
查找信息的EnumWindows的事情:http://stackoverflow.com/questions/1268314/findwindow-with -partial-window-title-windows -c?rq = 1 – lfxgroove