Ich möchte Code ausführen, wenn ein Benutzer ein entsprechendes Kontrollkästchen während der Installation überprüft. Beim Lesen der Hilfedatei sieht es so aus, als ob die einzige Möglichkeit zur Verwendung der Aufgabe darin besteht, sie mit einem Eintrag in den Dateien/Symbolen/etc zu verknüpfen. Sektion. Ich würde es gerne mit einer Prozedur im Abschnitt Code verknüpfen. Kann das gemacht werden und wenn ja, wie?Benutzerdefinierten Code über Aufgaben in Inno-Setup starten
6
A
Antwort
4
Sie tun das, indem Sie eine benutzerdefinierte Assistentenseite hinzufügen, die Boxen hat zu überprüfen, und führen Sie den Code für alle Kontrollkästchen aktiviert, wenn der Benutzer klickt auf „Weiter“ auf dieser Seite:
[Code]
var
ActionPage: TInputOptionWizardPage;
procedure InitializeWizard;
begin
ActionPage := CreateInputOptionPage(wpReady,
'Optional Actions Test', 'Which actions should be performed?',
'Please select all optional actions you want to be performed, then click Next.',
False, False);
ActionPage.Add('Action 1');
ActionPage.Add('Action 2');
ActionPage.Add('Action 3');
ActionPage.Values[0] := True;
ActionPage.Values[1] := False;
ActionPage.Values[2] := False;
end;
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := True;
if CurPageID = ActionPage.ID then begin
if ActionPage.Values[0] then
MsgBox('Action 1', mbInformation, MB_OK);
if ActionPage.Values[1] then
MsgBox('Action 2', mbInformation, MB_OK);
if ActionPage.Values[2] then
MsgBox('Action 3', mbInformation, MB_OK);
end;
end;
die Kontrollkästchen können entweder Standardsteuerelemente oder Elemente in einem Listenfeld sind, finden Sie in der Inno Setup-Dokumentation zu Pascal Scripting für Details.
Wenn Sie möchten, dass Ihr Code abhängig davon ausgeführt wird, ob eine bestimmte Komponente oder Aufgabe ausgewählt wurde, verwenden Sie stattdessen die Funktionen und IsTaskSelected()
.
11
Sie müssen keine eigene Assistentenseite definieren. Sie können sie einfach zur Seite mit den zusätzlichen Aufgaben hinzufügen.
[Tasks]
Name: associate; Description:"&Associate .ext files with this version of my program"; GroupDescription: "File association:"
[Code]
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := True;
if CurPageID = wpSelectTasks then
begin
if WizardForm.TasksList.Checked[1] then
MsgBox('First task has been checked.', mbInformation, MB_OK);
else
MsgBox('First task has NOT been checked.', mbInformation, MB_OK);
end;
end;
Kredit geht an TLama für this post.
Verwandte Themen
- 1. InnoSetup - Code Signatur-Zertifikat
- 2. InnoSetup: Abrufen von AppName im [Code] -Abschnitt
- 3. Ausführen von android Build-Aufgaben in benutzerdefinierten Aufgaben
- 4. -Code Verträge und Aufgaben
- 5. über TBB Aufgaben
- 6. Verpacken einer vorhandenen Aufgabe mit benutzerdefinierten Aufgaben
- 7. Debugger in C++ - Code starten
- 8. DLL/OCX in InnoSetup registrieren
- 9. Abbrechen eines InnoSetup Installateur
- 10. So starten Sie eine BAT-Datei über C# -Code
- 11. Syntax zum Starten vieler Async-Aufgaben in C#
- 12. Erstellen/Ausführen/Aufgaben mehrere Dotnet-Projekt in Visual Studio-Code?
- 13. C# ausführen Code in benutzerdefinierten
- 14. Intellij über URL starten
- 15. Registrierung Grunt Aufgaben, deren Code in externen JavaScript-Dateien befindet
- 16. Starten einer benutzerdefinierten Ansicht von einem benutzerdefinierten Modell. Zend_möglich?
- 17. Wie Abfrage Benutzer Sprachauswahl in innosetup Skript?
- 18. InnoSetup: Hinzufügen von Zeilenumbrüchen in die Komponentenbeschreibung
- 19. VS Code und Aufgaben mit Knoten
- 20. Starten der Hintergrundaufgabe in UWP über DependencyService
- 21. InnoSetup: Grund für Neustart finden
- 22. Installer wie InnoSetup für Mac
- 23. Dynamisch suchen mit Interrupts, über Aufgaben C#
- 24. Automatische Run Schluck Aufgaben über Npm
- 25. Wie wiederhole ich Code von ähnlichen Aufgaben?
- 26. Wie zum Starten eines Prozesses mehrmals für mehrere Aufgaben
- 27. Eine Schleife über mehrere Ansible-Aufgaben
- 28. Hinzufügen von TFS-Aufgaben (Workitem) über URL
- 29. Schluck 4.0: Aufgaben in Serie
- 30. Starten der Chrome-Emulation über die Befehlszeile