Как запустить программу из программы на C++
Отвечаю на вопрос, но обзорно, много кода здесь не ждите :)
В большинстве комплияторов C++ есть несколько возможностей. Смотря что Вы имеете в виду под запуском программы из программы - выполнение команды операционки внутри Вашей программы, запуск дочернего процесса, независимый запуск приложения и т.п.
1. Через функцию system
:
system("C:\windows\notepad.exe");
Но здесь, фактически, выполняется команда операционной системы. При закрытии материнского процесса будет закрыт и дочерний.
2. Через функцию CreateProcess
. Хороший пример, есть, скажем, в MSDN.
3. Через функцию WinExec
:
#include <Windows.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE prevInstance, PSTR cmdLine, int showCmd) { WinExec( "C:\\Windows\\system32\\notepad.exe", 1); return 0; }
Можно запускать дочернюю программу сразу свёрнутой, дав второму параметру значение SW_SHOWMINIMIZED
4. Из программы нужно открыть файл другой программой, например, текстовый файл Блокнотом. Делается
через ту же system
(п.1), просто нужно запустить наш Блокнот с параметром:
system("notepad C:\\windows\\system.ini");
5. Есть минимум 2 семейства функций в стандарте C++ - spawn
и exec
, см., например,
в лекциях, п. 8.13.
6. Можно упаковать чужую exe-шку в ресурсы своей программы и запускать её оттуда :)
05.11.2011, 20:45 [77816 просмотров]