Имам дълго работещо конзолно приложение, което стартира с Windows или може да се стартира от приложението, което пиша.
Имах ограничен успех при изпращането на ключове към конзолното приложение и дори не знам откъде да започна за четене на изход от него. Възможно ли е четене на изхода от конзолно приложение, което дори не е стартирано от искащото приложение?
Както и да е, два въпроса...
Как мога да емулирам ключ за "връщане"? (Ето какво трябва да изпратя конкретни ключове на приложението и приложението наистина получава ключовете, но изглежда не мога да намеря как да емулирам клавиша ENTER.
do {
hwndCurrentWindow = FindWindowA("ConsoleWindowClass", "My Other Console App");
if (hwndCurrentWindow == 0) {
break;
}
iStringLen = GetWindowTextW (hwndCurrentWindow, wcharWindowText, 500);
if (iStringLen == 0) {
continue;
}
SetActiveWindow(hwndCurrentWindow);
printf("Sending '?'");
SendMessage(hwndCurrentWindow, WM_CHAR, '?', 0);
// '?' shows up in console app
printf("Sending 'a'");
SendMessage(hwndCurrentWindow, WM_CHAR, 'a', 0);
// 'a' shows up in console app.
//printf("Sending RETURN");
//SendMessage(hwndCurrentWindow, WM_CHAR, VK_RETURN, 0);
// nothing happens
break;
} while (hwndCurrentWindow);
Как мога да чета данни от конзолното приложение? (Ако другото конзолно приложение не работи непрекъснато, просто щях да запиша изхода във файл и да го прочета в... по дяволите, това все още може да работи)
Разгледах шепа опции, но много от тези, които прочетох, са за C# и за съжаление нямам лукса да сменям езиците. Има ли подобни опции за C++?
Събирайте stdout изход от конзолно приложение с C++ Това едното не работи, защото приложението не излиза. Така че просто виси и чака. Непрекъснато добавяне на повече към буфера.
Заснемане на c# изпълним изход от друга C# програма
Благодаря за всяка помощ, която можете да предоставите!