Cómo agregar una tarea programada en un evento de conexión / desconexión de red con Inno Setup
Quiero usar Inno Setup para la instalación de mi programa y necesito Inno Setup para crear una tarea en el Programador de tareas de Windows para iniciar miprogram.exe
cada vez que se conecta internet.
yo puedohaz esto manualmente, pero quiero que Inno Setup lo hagaSchtasks
mando. Este es mi código de configuración de inno (aquí):
#define MyAppName "Desktop"
#define MyAppVersion "2"
#define MyAppPublisher "MH"
#define MyAppExeName "Desktop.exe"
[Setup]
AppId={{EFBBA2D3-C6F0-4D3D-BBD5-5AF126C3E8E9}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppPublisher={#MyAppPublisher}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputBaseFilename=setup 2
Compression=lzma
SolidCompression=yes
PrivilegesRequired=admin
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Files]
Source: "E:\IdeaProjects\Desktop\Desktop.exe"; DestDir: "{app}"; Flags: ignoreversion
[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
Filename: "schtasks.exe"; \
Parameters: "/Create /TN MyTask /XML ""{tmp}\Task.xml"""; \
StatusMsg: "Scheduling task..."; BeforeInstall: CreateTaskXml
;Flags: runhidden;
[Code]
procedure CreateTaskXml;
var
TaskXml: string;
begin
TaskXml :=
'<?xml version="1.0"?>' + #13#10 +
'<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">'
+ #13#10 +
' <Triggers>' + #13#10 +
{ The EventTrigger here }
' <EventTrigger>' +
' <Enabled>true</Enabled>' +
' <Subscription><QueryList><Query Id="0" Path="Microsoft-Windows-NetworkProfile/Operational"><Select Path="Microsoft-Windows-NetworkProfile/Operational">*[System[Provider[@Name='Microsoft-Windows-NetworkProfile'] and EventID=10000]]</Select></Query></QueryList></Subscription>' +
' </EventTrigger>' +
' </Triggers>' + #13#10 +
{ ... }
' <Actions Context="Author">' + #13#10 +
' <Exec>' + #13#10 +
' <Command>' + ExpandConstant('{app}\{#MyAppExeName}') + '</Command>' + #13#10 +
' </Exec>' + #13#10 +
' </Actions>' + #13#10 +
'</Task>' + #13#10;
if SaveStringToFile(ExpandConstant('{tmp}\Task.xml'), TaskXml, False) then
begin
Log('Task XML successfully created');
end
else
begin
Log('Failed to create task XML');
end;
end;
¿Me puedes ayudar? Gracias.