Abfrageliste der Windows-Konten in Inno Setup
Dec 11 2020
In meinem Inno Setup-Projekt muss ich dem Benutzer erlauben, ein Konto aus der Liste aller lokalen Konten auf einer benutzerdefinierten Seite auszuwählen. Das ausgewählte Konto wird verwendet, um einen Dienst mit benutzerdefinierten Anmeldeinformationen zu installieren. Wie kann ich das machen?
Danke im Voraus!
Antworten
1 MartinPrikryl Dec 11 2020 at 20:03
Sie können die WMI- Win32_UserAccountKlasse verwenden , um die Liste der Konten abzufragen.
[Run]
Filename: sc.exe; Parameters: ... {code:GetAccount}
[Code]
var
AccountPage: TInputOptionWizardPage;
procedure InitializeWizard();
var
WMIService: Variant;
WbemLocator: Variant;
WbemObjectSet: Variant;
I: Integer;
begin
Log('InitializeWizard');
AccountPage := CreateInputOptionPage(
wpSelectTasks, 'Service account', '', 'Please select account for the service:',
True, True);
WbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
WMIService := WbemLocator.ConnectServer('localhost', 'root\CIMV2');
WbemObjectSet :=
WMIService.ExecQuery('SELECT * FROM Win32_UserAccount');
if not VarIsNull(WbemObjectSet) then
begin
for I := 0 to WbemObjectSet.Count - 1 do
begin
AccountPage.Add(WbemObjectSet.ItemIndex(I).Caption);
end;
AccountPage.SelectedValueIndex := 0;
end;
end;
function GetAccount(Param: string): string;
var
I: Integer;
begin
for I := 0 to AccountPage.CheckListBox.Items.Count - 1 do
begin
if AccountPage.Values[I] then Result := AccountPage.CheckListBox.Items[I];
end;
end;

Verwandte Fragen:
- Inno Setup Erstellen Sie individuelle Verknüpfungen auf allen Desktops aller Benutzer
- Inno Setup zum Erstellen eines Benutzers in Windows