serg_aka_lain
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору [_Code] type TSHFileOpStruct = record Wnd: HWND; wFunc: UINT; pFrom: PChar; pTo: PChar; fFlags: Word; fAnyOperationsAborted: BOOL; hNameMappings: HWND; end; const FO_RENAME = $0004; FOF_FILESONLY = $0080; FOF_ALLOWUNDO = $0040; FOF_SILENT = $0004; FOF_NOCONFIRMATION = $0010; function SHFileOperation(const lpFileOp: TSHFileOpStruct):Integer; external 'SHFileOperation@shell32.dll stdcall'; function RenameDir(const fromDir, toDir: string): Boolean; var fos: TSHFileOpStruct; _fromDir, _toDir: string; begin _fromDir:= RemoveBackslashUnlessRoot(fromDir) + #0#0; _toDir := RemoveBackslashUnlessRoot(toDir) + #0#0; fos.wFunc := FO_RENAME; fos.fFlags := FOF_FILESONLY or FOF_ALLOWUNDO or FOF_SILENT or FOF_NOCONFIRMATION; fos.pFrom := PChar(_fromDir); fos.pTo := PChar(_toDir); Result := (0 = ShFileOperation(fos)); end; procedure CurStepChanged(CurStep: TSetupStep); begin If CurStep=ssInstall then begin RenameDir(ExpandConstant('{userdocs}'), ExpandConstant('{%userprofile}\My Documents\')); end; end; |