Witam, mam mały problem z usunięciem pliku z katalogu \System32\Drivers\plik.sys
Otóż gdy chcę skasować plik ręcznie to uruchamia się kontrola UAC i muszę potwierdzić że chcę usunąć plik jako administrator.
Napisałem prosty program który ma kasować plik i gdy uruchamiam go jako administrator to niestety pliku nie kasuje, dlaczego?
Ale gdy uruchamiam plik del_plik.bat
Oto zawartość pliku del_plik.bat
@echo off
del c:\windows\system32\drivers\plik.sys
to plik zostaje usunięty.
Poszedłem o krok dalej i napisałem programik który ma uruchamiać plik del_plik.bat jako administrator:
procedure RunAsAdmin(const aFile: string; const aParameters: string = ''; Handle: HWND = 0);
var
sei: TShellExecuteInfo;
begin
FillChar(sei, SizeOf(sei), 0);
sei.cbSize := SizeOf(sei);
sei.Wnd := Handle;
sei.fMask := SEE_MASK_FLAG_DDEWAIT or SEE_MASK_FLAG_NO_UI;
sei.lpVerb := 'runas';
sei.lpFile := PChar(aFile);
sei.lpParameters := PChar(aParameters);
sei.nShow := SW_SHOWNORMAL;
if not ShellExecuteexA(@sei) then
RaiseLastOSError;
end;
procedure TForm1.Button1Click(Sender: TObject);
RunAsAdmin('plik del_plik.bat');
end;
program uruchamia plik del_plik.bat jako administrator ale plik nie jest skasowany.
Wyłączyłem kontrolę UAC i nadal nic, domyślam się że trzeba jakoś programowo potwierdzić że chcę usunąć plik jako administrator ale nie wiem jak to zrobić, co ciekawe nie działa nawet sprawdzanie czy plik istnieje:
if FileExists('c:\windows\system32\drivers\plik.sys') then
i nie ma znaczenia czy program uruchamiam jako administrator czy normalnie, po prostu nie działa.
Czy ktoś ma pomysł jak usunąć plik systemowy z "c:\windows\system32\drivers\plik.sys"
Z góry dziękuję za pomoc.
dodanie znaczników <code class="winbatch"> i <code class="delphi"> - Furious Programming