如何获取控制台窗口句柄

 我来答
南京新华电脑专修学院
2016-11-21 · 新华电脑教育用心为户提供专业
南京新华电脑专修学院
新华电脑教育用心为户提供专业的电脑相关专业疑问解答
向TA提问
展开全部
 1.调用 GetConsoleTitle() 来保存当前的控制台窗口标题。
  2.调用 SetConsoleTitle() 来将控制台标题更改为一个唯一的标题。
  3.调用 Sleep(40),以确保已更新窗口标题。
  4.调用 FindWindow(NULL, uniquetitle),以获取 HWND,此调用将返回 HWND, 如果操作失败,将返回 NULL。
  5.从步骤 1 中,若要恢复原始窗口标题检索调用 SetConsoleTitle() 的值。  
  应该测试结果的 HWND。例如可以测试是否返回的 HWND 对应于当前进程在 HWND 上调用 GetWindowText() 并将结果与 GetConsoleTitle() 进行比较。  
  示例代码  
  下面的函数中检索当前控制台应用程序窗口句柄 (HWND)。如果此函数成功,则返回值是控制台窗口的句柄。如果此函数失败,则返回值为 NULL。省略一些错误检查,为简洁起见。  
  HWND GetConsoleHwnd(void)
  {
  #define MY_BUFSIZE 1024 // Buffer size for console window titles.
  HWND hwndFound; // This is what is returned to the caller.
  char pszNewWindowTitle[MY_BUFSIZE]; // Contains fabricated
  // WindowTitle.
  char pszOldWindowTitle[MY_BUFSIZE]; // Contains original
  // WindowTitle.

  // Fetch current window title.

  GetConsoleTitle(pszOldWindowTitle, MY_BUFSIZE);

  // Format a "unique" NewWindowTitle.

  wsprintf(pszNewWindowTitle,"%d/%d",
  GetTickCount(),
  GetCurrentProcessId());

  // Change current window title.

  SetConsoleTitle(pszNewWindowTitle);

  // Ensure window title has been updated.

  Sleep(40);

  // Look for NewWindowTitle.

  hwndFound=FindWindow(NULL, pszNewWindowTitle);

  // Restore original window title.

  SetConsoleTitle(pszOldWindowTitle);

  return(hwndFound);
  }
微测检测5.10
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇... 点击进入详情页
本回答由微测检测5.10提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式