GetConsoleTitle
-
Hallo zusammen,
ich starte durch ButtonKlick eine Konsolenanwendung, von der ich anschließend den Titel auslesen möchte.
mit folgendem Code wird meiner Variable WindowTitle aber kein Wert übergeben, kann mir da jemand helfen?
void Cneu2guiDlg::OnBnClickedButton1() { PROCESS_INFORMATION pi; STARTUPINFO si; ZeroMemory(&si,sizeof(STARTUPINFO)); si.cb = sizeof(STARTUPINFO); si.dwFlags = STARTF_USESHOWWINDOW; si.wShowWindow = SW_SHOWDEFAULT; LPTSTR exe = _T("D:\\count.exe"); CreateProcess(exe, NULL , NULL, NULL, TRUE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi); LPTSTR title = _T(""); DWORD size; HWND CurrentConsoleHwnd; char WindowTitle [1024]; memset(WindowTitle, 0, sizeof(WindowTitle)); CurrentConsoleHwnd = (HWND)GetConsoleTitle ( (LPWSTR)WindowTitle, 1024); CloseHandle(pi.hThread); CloseHandle(pi.hProcess); }
-
Hat niemand eine Idee?
-
GetConsoleTitle kann nur innerhalb der eigenen Consolen-Anwendung verwendet werden.
Was Du hier machst zielt auf einen fremden Prozess und das unterstützt diese API nicht.
-
Ok danke, und eine andere Möglichkeit gibt es nicht?
-
Du könntest es mit EnumWindows versuchen:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms633497(v=vs.85).aspxDu gehst alle Fenster durch und suchst über GetProcessHandleFromHwnd
http://msdn.microsoft.com/en-us/library/windows/desktop/dd318087(v=vs.85).aspx
deinen Prozess.Dann kannst du über den HWND mittels GetWindowText den Titel erhalten.