Salve!Ну, я искал сеть (и переполнение стека) для ответа.Мне нужна помощь, чтобы мой установщик Inno отправил командную строку с параметрами в работающее приложение.
В myapplication_setup.exe я упаковал myapplication.exe.Теперь myapplication.exe имеет возможность получать параметры командной строки.Если я запускаю второй экземпляр с определенными параметрами, он передаст их первому экземпляру, а затем выйдет из своего второго экземпляра (оба будут завершены).Это позволяет мне использовать второй экземпляр myapplication.exe, чтобы завершить работу первого экземпляра.Эта часть отлично работает, если я делаю это из пакетного файла, из окна cmd или из поля запуска.
Теперь мне нужен установщик, чтобы вызвать эту командную строку: «c: \ myapplication \ myapplication.exe quit» и затем проверитьчтобы увидеть, вышли ли оба экземпляра.Возможно, мне удастся сойти с рук, просто проверив второй экземпляр, запущенный установщиком, потому что они оба выходят примерно в одно и то же время.Я не очень хорошо знаю Inno, поэтому вот код, который я придумал для выполнения функции командной строки.Проблема в том, что я всегда получаю ResultCode из 267, и myapplication никогда не завершается.
Программа установки должна вызвать функцию exec и убедиться, что myapplication.exe завершил работу, прежде чем извлечь новую версию myapplication.exe.
Может ли кто-нибудь просмотреть мой код и помочь мне?Спасибо!
[code]
function PrepareToInstall(var NeedsRestart: Boolean): String;
var
ResultCode: Integer;
begin
if Exec('C:\myapplication\myapplication.exe', 'quit', '{app}', SW_HIDE, ewWaitUntilTerminated, ResultCode) then
begin
msgbox('True: C:\myapplication\myapplication.exe : ' + IntToStr(ResultCode), mbInformation, MB_OK);
end
else begin
msgbox('False: C:\myapplication\myapplication.exe : ' + IntToStr(ResultCode), mbInformation, MB_OK);
SysErrorMessage(ResultCode)
end;
end;