usuwanie itp. pliku chronionego przez windows

0

Często bywa tak ,że chce usunąć jakiś plik , a nie mogę bo Windows się pluje np. "Plik jest używany przez ciebie lub innego użytkownika";"Plik jest używany przez inny proces"..ostatnio właśnie mam wirusa którego antywir nie wykrywa a ja nie mogę usunąć..jak napisać program który będzie usuwał edytował i kopiował dany plik bez względu na to jak się broni Windows...wiadomo ze prawdopodobnie posunie to za sobą wyskoczenie jakiegoś błędu zawieszenie się któregoś programu itp. ale warto... :D

PS... można by tez później to wykorzystać do niecnych planów..np. kopiowanie SAM ..jeśli wiecie o co mi chodzi [diabel]

0

Niestety w normalny sposób pliku który jest używany przez inny proces nie da się skasować. Takie jest założenie no i było by dziwne gdyby jakiś mechanizm w windzie pozwalał na takie coś(mechanizm znany wszystkim, no ale microsoft może ma jakąś furtkę?). Jeżeli chodzi o otwieranie plików używanych przez inny proces to sprawa jest następująca: otwarcie jest uzależnione od parametrów z jakimi dany plik był otwarty przez inny proces(znaczy się czy inna aplikacja chce się podzielić tym plikiem z innymi) a także od parametrów z jakimi my chcemy go otworzyć.

Przykład:
Proces A otwiera plik do odczytu i zapisu i pozwala odczytywać ten pliki innym aplikacją, Proces B otwiera ten sam plik tylko do odczytu i pozwala innym aplikacjom na wszystko to wtedy dostanie uchwyt, gdyby poprosił system o ten plik z możliwością zapisu to by dostał błąd że plik jest używany. Tak samo by sie stało gdyby otwierał ten plik tylko do odczytu i bez zadnego dostępu dla innych to wtedy także dostał by błąd.

Niestety z plikami jest tak że kto pierwszy ten lepszy i jeżeli chcesz otworzyć plik który jest używany przez inny proces to niestety musisz wcześniej taki proces zabić(jak go wykryć to już inne zagadnienie).

Oczywiście należy przy tym temacie wspomnieć że istnieje możliwość dotarcia do danych w danym pliku ale nie można tu wtedy mówić o otwieraniu pliku(mianowicie mam tu na myśli grzebanie na partycji, ale to jest niełatwe a wręcz trudne, mały błąd może spowodować że się rozleci partycja, i nie da sie zrobić w jednej linijce kodu)

0

mozesz też uzyć gotowy program KillBox http://killbox.net/

0

Właśnie a jak wykryć który proces korzysta z danego pliku ??

0

Można po prostu zamknąć uchwyt do pliku i wtedy plik np wyrzucić.

Oczywiście bywają sytuacje, gdy mimo zamknięcia uchwytu z plikiem nie daje się nic zrobić (vide: WGA patch), ale standardowo działa na 95% przypadków.

Np:
http://www.microsoft.com/technet/sysinternals/utilities/ProcessExplorer.mspx

1 użytkowników online, w tym zalogowanych: 0, gości: 1