У меня есть установщик приложения, скажем app_installer.exe. Я могу установить его в моей системе cmd
с помощью app_installer.exe /S
, Теперь мне нужно сделать то же самое из службы Windows, и я создал приложение службы для этого в MSVS 2013
, Я пытался с помощьюCreateProcess()
следующим образом:
if (CreateProcess(NULL,"E:\\app_installer.exe \S",NULL,NULL,FALSE,0,NULL,NULL,&StartupInfo, &ProcessInfo))
{
myfile << "Wait for object...\n";
WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
CloseHandle(ProcessInfo.hThread);
CloseHandle(ProcessInfo.hProcess);
myfile << "Handles closed\n";
}
else
{
myfile << "The process could not be started...\n";
myfile << GetLastError();
}
Хоть CreateProcess
(Я также попытался / SD, / silent, / q, / qn вместо / S) вернул ненулевое значение, мое приложение не было установлено.
Затем я добавил следующую строку в мой код:
system("E:\\app_installer.exe \S \norestart);
При добавлении этой строки, после запуска service
, он спросил меня, нужно ли view the message
от службы, и когда я нажал на View message
, мастер установки пришел .. Однако не молчит …
Это проблема с параметрами, которые я передал? Как можно выполнить тихую установку в C ++?
Задача ещё не решена.