Здравствуйте Moro, Вы писали:
M>Привет всем!
M>Есть DOS-ское приложение запущеное под WinNT. Надо в определенное время послать ему, допустим, нажатие клавиши F1 и после этого ENTER. Я пробовал использовать keybd_event. Для виндового консольного приложения (например Far) все работает отлично, а для DOS-ского (например DosNavigator) — ни в дугу. Как обойти эту пролему?
Например вот так:
int ret = PostThreadMessage(thread_id, WM_KEYDOWN, VK_F1, ...
А получить thread_id можно вот так:
STARTUPINFO si;
::ZeroMemory (&si, sizeof (STARTUPINFO));
si.cb = sizeof (STARTUPINFO);
PROCESS_INFORMATION pi;
CreateProcess (NULL, "my_dos_program.exe", NULL, NULL, FALSE,
NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi);
thread_id = pi.dwThreadId;