Interroger la liste des comptes Windows dans Inno Setup
Dec 11 2020
Dans mon projet Inno Setup, je dois autoriser l'utilisateur à choisir un compte dans la liste de tous les comptes locaux sur une page personnalisée. Le compte sélectionné sera utilisé pour installer un service avec des informations d'identification personnalisées. Comment puis-je faire ça?
Merci d'avance!
Réponses
1 MartinPrikryl Dec 11 2020 at 20:03
Vous pouvez utiliser la classe WMIWin32_UserAccount pour interroger la liste des comptes.
[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;

Questions connexes:
- Inno Setup Créez des raccourcis individuels sur tous les postes de travail de tous les utilisateurs
- Inno Setup pour créer un utilisateur sous Windows