Daftar kueri akun Windows di Inno Setup

Dec 11 2020

Dalam proyek Pengaturan Inno saya, saya perlu mengizinkan pengguna untuk memilih akun dari daftar semua akun lokal di halaman kustom. Akun yang dipilih akan digunakan untuk menginstal layanan dengan kredensial khusus. Bagaimana saya bisa membuat ini?

Terima kasih sebelumnya!

Jawaban

1 MartinPrikryl Dec 11 2020 at 20:03

Anda dapat menggunakan kelas WMIWin32_UserAccount untuk menanyakan daftar akun.

[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;


Pertanyaan-pertanyaan Terkait:

  • Inno Setup Membuat pintasan individual di semua desktop dari semua pengguna
  • Inno Setup untuk membuat pengguna di Windows