У меня есть установщик приложения, скажем, 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++?
C++11
. - person Galik   schedule 24.07.2015'\n'
от символа обратной косой черты'\'
? Вы должны экранировать символ обратной косой черты другой обратной косой чертой, например:'\\'
. - person Galik   schedule 24.07.2015"E:\\app_installer.exe \\S \\norestart"
, либо, альтернативно,"E:/app_installer.exe /S /norestart"
(Windows также должна принимать косую черту). - person Galik   schedule 24.07.2015"E:\\app_installer.exe /S /norestart"
(вы не можете зависеть от Windows, принимающей косую черту в пути, это работает только иногда) - person Harry Johnston   schedule 25.07.2015/S /norestart
из интерактивной командной строки? То есть вы точно знаете, что установщик действительно принимает/norestart
в качестве флага? - person Harry Johnston   schedule 25.07.2015main()
), используяsystem("E:\\app_installer.exe /S");
. Но та же команда в WinService дает интерактивный установщик... - person Jackzz   schedule 27.07.2015