找不到窗口句柄

Cannot find window handle

本文关键字:窗口句柄 找不到      更新时间:2023-10-16

我想通过代码

查找窗口的名称
HANDLE hWnd = FindWindow(0, (LPCWSTR)"Untitled - Notepad");

但是如果我检查hWnd之后,它总是空的。我哪里做错了?

应用程序和记事本都运行在x64

(LPCWSTR)"Untitled - Notepad"是无效的类型转换。你错误地告诉编译器字符串是一个宽字符串,而没有告诉编译器实际将字符串编译为一个宽字符串(默认情况下它被编译为一个8位窄字符串)。

正确的解决方案是使用L前缀代替:

HANDLE hWnd = FindWindow(0, L"Untitled - Notepad");

这告诉编译器字符串字面值是宽的而不是窄的