Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Новый участник


Сообщения: 7
Благодарности: 2

Профиль | Отправить PM | Цитировать


Ребята, помогите, пожалуйста.
Есть задача, при установке программы создавать нового пользователя windows и добавлять программу в автозагрузку только ему (во время установки программы но не является текущим пользователем.) Пробовала получать SID пользователя после создания, но видимо из-за нехватки опыта получается какая-то ерунда. Выкладываю свои попытки, может подскажете как можно поправить?

Код: Выделить весь код
[Registry]
Root: HKU; Subkey: {code:GetUserSid}\Software\Microsoft\Windows\CurrentVersion\Run; ValueName: {#MyAppExeName}; ValueType: string; ValueData: {app}\{#MyAppExeName};

[Run]
;  здесь я создаю пользователя и пыталась сделать его загружаемым по умлочания после перезагрузки, но пока точно работает только первая строчка :) 
Filename: net.exe; parameters: "user Visitor /add /fullname:""Visitor"" /comment:""TEST"" /expires:never /passwordchg:no"
Filename: reg.exe; parameters: "ADD HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon /v AutoAdminLogon /t REG_SZ /d 1"; 
Filename: reg.exe; parameters: "ADD HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon /v DefaultUserName /t REG_SZ /d 'Visitor'";  
[Code]
function GetUserSid(ExecStdout: string):string;
var
  TmpFileName: string;
  ResultCode: integer;
  Params: string;

  begin
TmpFileName := ExpandConstant('{tmp}') + '\sid_results.txt';
    Exec(ExpandConstant('{cmd}'), ' /C wmic useraccount where name=''Visitor'' get sid > "' + TmpFileName + '"', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
      if LoadStringFromFile(TmpFileName, ExecStdout) then 
        begin     
        MsgBox(ExecStdout, mbInformation, MB_OK);
         end
      else
        begin
        MsgBox('Installing Error', mbError, MB_OK);
        end;
    DeleteFile(TmpFileName);
    end;

Последний раз редактировалось AnastasiyaM, 22-10-2018 в 12:39. Причина: форматированние


Отправлено: 16:45, 20-10-2018 | #101