Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Заменить залокированный системой файл... [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;


Писалось по памяти, проверьте не попутал ли я соурс и дестенейшен, в мсдн должно быть упоминание, или просто поексперементируйте..


Наверх

Титульная страница Поиск, карта сайта Написать письмо