Inno Setup에서 Windows 계정 목록 쿼리
Dec 11 2020
Inno Setup 프로젝트에서 사용자가 사용자 지정 페이지의 모든 로컬 계정 목록에서 계정을 선택할 수 있도록해야합니다. 선택한 계정은 사용자 지정 자격 증명으로 서비스를 설치하는 데 사용됩니다. 어떻게 만들 수 있습니까?
미리 감사드립니다!
답변
1 MartinPrikryl Dec 11 2020 at 20:03
WMI Win32_UserAccount클래스 를 사용하여 계정 목록을 쿼리 할 수 있습니다 .
[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;

관련 질문 :
- Inno Setup 모든 사용자의 모든 데스크톱에 개별 바로 가기 생성
- Windows에서 사용자를 생성하는 Inno Setup