русский
Germany.ruForen → Архив Досок→ Programmierung

Как программно открыть Acrobat Reader ?

21.02.07 15:57
Re: Как программно открыть Acrobat Reader ?
 
Gaidzin знакомое лицо
Gaidzin
В ответ на:

STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( π, sizeof(pi) );
const char* lpcszToExecution = "\"C:\Program Files\Adobe\Acrobat 6.0\Reader\AcroRd32.exe\" \"C:\Program Files\my.pdf\"";
CreateProcess(NULL, lpcszToExecution, NULL, NULL, FALSE, CREATE_NO_WINDOW, NULL, NULL, &si, π);

Хотел бы задать смежный вопрос, что бы не открывать отдельную ветку.
А как "убить" процесс запущенный в CreateProcess() из запускающей программы?
Сейчас используется примерно такой код
В ответ на:

PostMessage(FindWindow(NULL, MainWindowName), WM_CLOSE, 0, 0);

Все работает, однако необходимо задавать помимо имени программы (для запуска) еще и имя ее главного окна (а оно у некоторых программ может и менятся в процессе работы).
Может быть существует более изящное решение? Желательно не TerminateProcess() и без встраивания обработчиков сообщений в вызываемую программу.
Возможно ли через STARTUPINFO или PROCESS_INFORMATION получить имя главного окна программы или его дескриптор?
Зараннее благодарен за ответ.
 

Sprung zu