如何获取WinCE控制台窗口的hWnd?

时间:2015-08-10 02:51:50

标签: cmd console windows-ce findwindow

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

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

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

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

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

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

2 个答案:

答案 0 :(得分: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检查其类。您还可以使用GetWindowThreadProcessIdGetModuleFileName查询流程文件路径。

答案 1 :(得分:0)

您可以从Visual Studio 2008远程工具中找到“Windows CE远程间谍”所需的所有信息。在我的情况下(Windows CE 6),控制台窗口具有“ConDev_AppCls”类名。