• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Запуск *.exe из *.exe

  • Автор темы Guest
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest

Пишу Win-32 приложение на С++ в компиляторе VS 7.0 (NET)
Моя программа main.exe должна в определённый момент запустить чужую child.exe При этом старые функции для этой цели spawnl_ или delay VS 7.0 не принимает. В Сreate process параметров столько, что даже пример из MSDN не работает... Подскажите функцию!!!
 
G

Guest

Осваивай CreateProcess, ничего сложного там нет - большинство параметров с радостью берут NULL.

BOOL WinRun(LPCTSTR sFile, LPCTSTR sLine, LPCTSTR sDir, UINT SW_x, BOOL bWait)
{
STARTUPINFO si;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
si.wShowWindow=(WORD)SW_x;
si.dwFlags=STARTF_USESHOWWINDOW;
PROCESS_INFORMATION pi;
CString sPath=sFile;
sPath+=_T(" ");
sPath+=sLine;

BOOL bRet=CreateProcess(NULL, (LPTSTR)(LPCTSTR)sPath, NULL,
NULL, FALSE, 0, NULL, sDir, &si, &pi);
if (bWait)
WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
return bRet;
}
 
F

FeaNor

Добрый день! Вопросик почти на эту же тему, нужно запустить .exe, но ситуация следующая: есть некая папка Folder, внутри которой 2 папки Fold1 и Fold2 плюс тут же лежит setup.exe, который при запуске выполняет установку из Fold1, потом из Fold2. все это добро лежит на CD и при косвенном запуске этого setup.exe(т.е. из другого .exe) где-то происходит запутка с относительными путями и после установки из папки Fold1 уже не может найти другую, но будучи запущен непосредственно все делает правильно. Все это было сначала реализовано через .bat файлы и там решалось через такую конструкцию

cd ..
cd Folder
setup.exe

Сейчас использую ShellExecute, подскажите плз как тут это сделать? СПАСИБО
 
F

FeaNor

Всем спасибо, сам догадался, через SetCurrentDirectory() :)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!