Silent installiert Qt55 Enterprise unter Windows

Edit: Mit Hilfe des Qt-Supports habe ich gelöst, wie diese beiden Teile des Qt Enterprise-Installationsprogramms automatisiert werden können. Unten ist die Skriptaufrufe.

Ich versuche, Qt 5.5.1 Enterprise unter Windows 8.1 und Windows 10 unbeaufsichtigt zu installieren, indem ich die Option "--script" verwende, um ein Javascript aufzurufen, das die Benutzeroberfläche automatisiert, aber nicht alle Elemente der Benutzeroberfläche zu lesen scheint um es zu lesen.

Ich habe 2 Controllerseiten, die anders funktionieren als das Standard-Qt-Installationsprogramm, insbesondere "CredentialsPageCallback", bei dem ein Kontrollkästchen aktiviert sein muss, bevor "gui.clickButton (buttons.NextButton)" aufgerufen wird. Außerdem wird eine neue Rückrufseite mit dem Namen "ManualLicensePageCallback" vorgeschlagen, auf der überhaupt keine Dokumentation vorhanden ist. Hier ist das Skript, das ich schreibe. Ich benötige den Namen des Kontrollkästchens auf der Seite "Anmeldeinformationen" und die beiden Aufrufe "Leitung bearbeiten" auf der Seite "Manuell":

// Emacs mode hint: -*- mode: JavaScript -*-

function Controller() {
    //installer.autoRejectMessageBoxes();
    installer.installationFinished.connect(function() {
    gui.clickButton(buttons.NextButton);
    })
}

Controller.prototype.WelcomePageCallback = function() {
    gui.clickButton(buttons.NextButton);
}

Controller.prototype.CredentialsPageCallback = function() {
    gui.pageWidgetByObjectName("CredentialsPage").enterManuallyCheckBox.click();
    gui.clickButton(buttons.NextButton);    
}

Controller.prototype.ManualLicensePageCallback = function() {
    var page = gui.pageWidgetByObjectName("ManualLicensePage");
    page.LicenseeLineEdit.setText("NAME");
    page.Qt5KeyLineEdit.setText("REG KEY");
    gui.clickButton(buttons.NextButton);
}

Controller.prototype.IntroductionPageCallback = function() {
    gui.clickButton(buttons.NextButton);
}

Controller.prototype.TargetDirectoryPageCallback = function() {
    gui.currentPageWidget().TargetDirectoryLineEdit.setText("C:\\Path\\To\\Install");
    gui.clickButton(buttons.NextButton);
}

Controller.prototype.ComponentSelectionPageCallback = function() {
    var widget = gui.currentPageWidget();

    //BY DEFAULT, THE DEFAULT INSTALL METHOD IS SELECTED
    //USE THESE WIDGET CALLS TO DESELECT ANY  ITEMS

    //widget.deselectAll();
    //widget.deselectComponent("qt.55.win64_msvc2013_64");
    //widget.deselectComponent("qt.55.qt3d");
    //widget.deselectComponent("qt.55.qtquick1");
    //widget.deselectComponent("qt.55.qtwebengine");
    //widget.deselectComponent("qt.55.qtquickcontrols");
    //widget.deselectComponent("qt.55.qtscript");
    //widget.deselectComponent("qt.55.qtcanvas3d");
    //widget.deselectComponent("qt.55.qtlocation");

    //widget.deselectComponent("qt.tools");
    //widget.deselectComponent("qt.extras");
    //widget.deselectComponent("qt.enterpriseaddons");

    gui.clickButton(buttons.NextButton);
}

Controller.prototype.LicenseAgreementPageCallback = function() {
    gui.currentPageWidget().AcceptLicenseRadioButton.setChecked(true);
    gui.clickButton(buttons.NextButton);
}

Controller.prototype.StartMenuDirectoryPageCallback = function() {
    gui.clickButton(buttons.NextButton);
}

Controller.prototype.ReadyForInstallationPageCallback = function() {
    gui.clickButton(buttons.NextButton);
}

Controller.prototype.FinishedPageCallback = function() {
    var checkBoxForm = gui.currentPageWidget().LaunchQtCreatorCheckBoxForm
    if (checkBoxForm && checkBoxForm.launchQtCreatorCheckBox) {
        checkBoxForm.launchQtCreatorCheckBox.checked = false;
    }
    gui.clickButton(buttons.FinishButton);
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage