2016-09-15 4 views
2

XML 파일에서 예약 된 작업으로 Inno Setup을 만들려고합니다. 예약 된 작업 : 내 응용 프로그램은 사용자 로그인으로 시작해야합니다. 이노 설치 스크립트에서Inno 설치에서 schtask.exe를 실행하기 전에 설치 경로가있는 XML 작업 파일을 만듭니다.

이 제대로 작동

<Actions Context="Author"> 
    <Exec> 
     <Command>"C:\Program Files\MyApp\MyApp.exe"</Command> 
    </Exec> 
</Actions> 

:

[Run] 
Filename: "schtasks.exe"; 
    \Parameters: "/create /XML ""{app}\Schedule.xml"" /TN AppStart" 

파일 Schedule.xml인치 하지만 사용자가 임의의 위치에 설치할 수 있기 때문에 XML 파일에 응용 프로그램 경로를 {app}\MyApp.exe으로 설정하고 싶습니다. 설치 실행 시간에 XML 파일에서이 경로를 변경하려면 어떻게해야합니까?

+0

왜 XML 파일을 사용 하시겠습니까? 'schtasks' 명령 행 스위치를 대신 사용하십시오. –

+0

@MartinPrikryl ** "** 설정보다 오래 실행하면 작업을 중지하십시오."** 설정. 명령을 통해이를 비활성화 할 수있는 방법은 없습니다. 그래서 XML을 사용해야합니다. – samgi

+0

'/ K' 스위치는 어떨까요? * "종료 시간 또는 지속 시간에 작업을 종료합니다"* –

답변

1

XML을 사용하여 실행할 경로를 지정하는 대신 /TR 스위치를 사용하십시오.


어떤 이유로 XML을 사용하여 주장하는 경우

[Run] 
Filename: "schtasks.exe"; \ 
    Parameters: "/Create /TR ""{app}\MyApp.exe"" /TN AppStart" 

, 당신은 즉시 파일을 만들어야합니다.

[Run] 
Filename: "schtasks.exe"; \ 
    Parameters: "/Create /XML ""{tmp}\Schedule.xml"""; BeforeInstall: CreateScheduleXML 
[Code] 

procedure CreateScheduleXML; 
var 
    FileName: string; 
    AppPath: string; 
begin 
    FileName := ExpandConstant('{tmp}\Schedule.xml'); 
    AppPath := ExpandConstant('{app}\MyApp.exe'); 
    { Create file here } 
end; 

당신은 SaveStringsToUTF8File 같은 간단한 기능을 사용하여 파일을 만들거나 (How to read and write XML document node values? 참조) MSXML2.DOMDocument COM 개체를 사용할 수 있습니다.