0

我正在尝试使用 WEC 7(Windows Embedded Compact 7)隐藏 WinCE 的控制台窗口。

在我的桌面窗口中,我已经确认可以使用以下代码完成此操作:

HWND hWnd = FindWindow(L"ConsoleWindowClass",NULL);
ShowWindow(hWnd, SW_HIDE);

但是,FindWindow如果我在 WinCE 上使用此代码,则返回一个空指针。

可能是 WinCE 的控制台窗口的类名与桌面窗口不同。

有没有办法获得hWnd控制台窗口的?

4

2 回答 2

0

使用 EnumWindows API 查找您的窗口 HWND,例如:

BOOL CALLBACK FindWindowByEnumProc(HWND hwnd, LPARAM lParam) {
    if ( IsConsole(hwnd) ) {
        // use hwnd.
        return FALSE;
    }
    return TRUE;
}
::EnumWindows(FindWindowByEnumProc, NULL);

在里面IsConsole添加你的逻辑来决定这是否是一个控制台。您可以使用获取窗口文本GetWindowText或使用GetClassName. GetWindowThreadProcessId您还可以使用和查询进程 exe 文件路径GetModuleFileName

于 2015-08-14T12:30:48.810 回答
0

您可以通过 Visual Studio 2008 Remote Tools 中的“Windows CE Remote Spy”发现所需的所有信息。在我的情况下(Windows CE 6),控制台窗口具有“ConDev_AppCls”类名。

于 2015-08-20T09:48:38.280 回答