![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Заменить залокированный системой файл... [D7, Win95/98]
Jolik © (2006-06-14 18:31:00)В NT все решается через ветку реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
а в 95/98 чем пользоваться в таких случаях?
Lamer@fools.ua (2006-06-15 09:14:00) [1]> проверьте не попутал ли я соурс и дестенейшен
Из справки по MoveFileEx.
Windows Me/98/95: The MoveFileExfunction is not supported. To rename or delete a file at restart, use the following procedure.
To rename or delete a file on Windows Me/98/95
Check for the existence of the WININIT.INI file in the Windows directory.
If WININIT.INI exists, open it and add new entries to the existing [rename] section. If the file does not exist, create the file and create a [rename] section.
Add lines of the following format to the [rename] section:
DestinationFileName=SourceFileName
Both DestinationFileNameand SourceFileNamemust be short file names. To delete a file, use NUL as the value for DestinationFileName.
The system processes WININIT.INI during system boot. After WININIT.INI has been processed, the system names it WININIT.BAK.
Ihor Osov'yak (2006-06-14 23:30:00) [2]кстати, в НТ необязательно в реестри лезть, штатно -
MoveFileEx + MOVEFILE_DELAY_UNTIL_REBOOT.. Оно, конечно, тоже запишет в реестр, но именно MoveFileEx + MOVEFILE_DELAY_UNTIL_REBOOT документировано..
Ihor Osov'yak (2006-06-14 23:24:00) [3]записать в wininit.ini строчку rename....
примерно так
procedure MarkToMoveOnReboot;
var
winFolder: string;
ini: TIniFile;
begin
winFolder := GetWindowsFolder;
ini := TIniFile.Create(winFolder + '\wininit.ini');
ini.WriteString('RENAME',
PathToShortName(winFolder + '\dst.bbb'),
PathToShortName(winFolder + '\src.bbb'));
ini.Free;
end;
Писалось по памяти, проверьте не попутал ли я соурс и дестенейшен, в мсдн должно быть упоминание, или просто поексперементируйте..