![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как удалить неудаляемый файл. [D6, WinXP]
programmerts © (2002-07-12 19:38:00)Мне нужно удалить пару файлов, занятых другим приложением.
А также надо удалить мою *.dll.
Как это зделать.
Желательно с примером.
Заранее спасибо.
programmerts (2002-07-15 19:40:00) [1]Да после перегрузки, я знаю как, но если удалять много файлов сразу.
Что удалить можно без болезненно я знаю, на С++, знакомый делал, в Windows надо какую-то dll отключить, а после удаления опять подключить, но вот какую?
LENIN INC (2002-07-12 21:18:00) [2]Используемый файл нельзя удалить! Но можно удалить после перезагрузки компьютера, прописав
его в ключ реестра RUNONCE. После перезагрузки компьютера выполняется действие, определенное в этом ключе, а потом данные из него удаляются автоматом. Вот что должно быть прописано:
command.com /c del "Путь/ИмяФайла"
Вот код, разбирайся.
uses
Registry;
//функция занесения в реестр инфы
PROCEDURE RUNONSTARTUP(SPROGTITLE, SCMDLINE : STRING; BRUNONCE : BOOLEAN );
VAR
SKEY : STRING;
REG : TREGINIFILE;
BEGIN
IF( BRUNONCE )THEN SKEY := "ONCE"
ELSE SKEY := "";
REG := TREGINIFILE.CREATE( "" );
REG.ROOTKEY := HKEY_LOCAL_MACHINE;
REG.WRITESTRING(
"SOFTWARE\MICROSOFT"
+ "\WINDOWS\CURRENTVERSION\RUNONCE"
+ SKEY + #0,
SPROGTITLE,
SCMDLINE );
REG.FREE;
END;
//По нажатию кнопки...
procedure TForm1.Button1Click(Sender: TObject);
begin
if Application.MessageBox("Удалить файл и перезагрузить машину?","Заголовок окна", MB_YESNO)
= ID_YES then
begin
RUNONSTARTUP("Удаление...", "command.com /c del " +(""")+(ИмяФайла)+("""), false );
ExitWindowsEx(EWX_REBOOT,0);
end
else
Exit;
end;
Вот это - (""") - нужно для поддержки command.com длинного пути. Так ты сможешь удалить файл, который находится в любом каталоге и с любым именем - длинным или коротким.
Anatoly Podgoretsky (2002-07-12 19:53:00) [3]Как убить Дункан МакЛауда?
BAY (2002-07-12 19:43:00) [4]убей приложение