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)