Autor Beitrag
Robii
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236



BeitragVerfasst: So 31.05.09 21:40 
Hey, ich hab ein kleines Tool geschrieben, welches eine festgelegte Datei im 5sek-Takt löschen soll.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
function DeleteFile(const AFile: string): boolean;
var
sh: SHFileOpStruct;
begin
ZeroMemory(@sh, sizeof(sh));
with sh do
   begin
   Wnd := Application.Handle;
   wFunc := fo_Delete;
   pFrom := PChar(AFile +#0);
   fFlags := fof_Silent or fof_NoConfirmation;
   end;
result := SHFileOperation(sh) = 0;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
DeleteFile('C:\Windows\Temp\_avast4_');
end;

end.

Klappt aber leider nicht, da der Zugriff verweigert wird. Wie kann ich den Code so abändern, das egal ob Zugriff oder nicht der Ordner gelöscht wird?
Grüße.
ffgorcky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 573

WIN XP/2000 & 7Prof (Familie:Win95,Win98)

BeitragVerfasst: So 31.05.09 21:42 
Ich denke mal eher, dass der Zugriff verweigert wird, weil die Datei gerade von einem anderen Programm genutzt wird.
Da weiß ich leider auch nicht, wie man die dann löschen kann.
Robii Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236



BeitragVerfasst: So 31.05.09 21:45 
Nein nein, der Zugriff wird nicht verweigert weil die Datei benutzt wird, sondern mir fehlt die Berrechtigung. ( Wenn ich versuche es Manuel zu löschen, kommt die Fehlermeldung, das mir die Berrechtigung fehlt. ) Wie kann ich das ändern, das mein Programm die Berrechtigung hat?
Grüße.
FinnO
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1331
Erhaltene Danke: 123

Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
BeitragVerfasst: So 31.05.09 21:54 
unter vista braucht man an bestimmten regionen administratorrechte, um datein zu löschen.
ffgorcky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 573

WIN XP/2000 & 7Prof (Familie:Win95,Win98)

BeitragVerfasst: So 31.05.09 22:51 
Also ich hätte da schon eine Lösung, wie man die Schreib-Erlaubnis auch als normaler Benutzer setzen kann.
Aber das klingt mir ja danach, als wenn Du irgendwas vom Betreiber unerwünschtes machen möchtest.
Das dürfen wir dann ja doch nicht unterstützen.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 01.06.09 00:29 
Warum sollte man eine Datei im 5 Sekundentakt löschen wollen?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 01.06.09 00:50 
user profile iconRobii hat folgendes geschrieben Zum zitierten Posting springen:
Nein nein, der Zugriff wird nicht verweigert weil die Datei benutzt wird, sondern mir fehlt die Berrechtigung.
Wie soll denn die Datei immer wieder auftauchen, ohne dass ein Zugriff darauf erfolgt (nach deinen Worten)? :gruebel:

user profile iconRobii hat folgendes geschrieben Zum zitierten Posting springen:
Wie kann ich das ändern, das mein Programm die Berrechtigung hat?
Es mit Adminrechten starten, also ggf. das entsprechende Manifest einkompilieren.
Robii Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236



BeitragVerfasst: Mo 01.06.09 01:55 
Hallo zu später Stunde, hab mir gedacht, das ihr euch da wundert. Aber das Problem ist eigentlich recht simpel. Vor etwa 2 Monaten habe ich mir einen Virus eingefangen, denn ich dann auch erfolgreich beämplft habe. Trotzdem bleibt eine Datei immer noch bestehen und es ist unmöglich diese zu löschen, weil sie 2000x & öfter im System enthalten ist. Jedesmal beim Booten des Pcs, kopiert sie sich neu und startet eine Anwendung ( versteckt in einer anderen Exe & zwar der Explorer.exe ). Diese Anwenund erstellt alle paar Minuten, habe die Zeitabstände noch nicht bestimmt, 4 - 5 Temp. Dateien im Windows-Temp Ordner. Jedes mal wenn diese Dateien erstellt werden, schlägt mein Antivir an und ich muss die Dateien mit 'Unlocker' löschen, da mir manuell die Berechtigung fehlt ?!. Also dachte ich mir, schreibe ich ein kleines Proramm, was im Hintergrund läuft und die Dateien für mich automaitsch löscht.

Hoffe ihr wisst jetzt, was ich meine & viele Grüße.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 01.06.09 02:22 
Wenn du wirklich einen Virus hast, dann bleibt dir ohnehin nichts anderes als neu zu installieren... :roll:
Robii Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236



BeitragVerfasst: Mo 01.06.09 02:55 
Der Virus ist wie gesagt schon bekämpft. Es geht jetzt nur noch darum, die Datei die harmlos ist, aber trotzdem immerwieder kommt automatisch zu löschen.
Grüße.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 01.06.09 03:45 
Erstens kannst du nie sicher sein, dass der Virus komplett entfernt ist, zweitens erstellt ein gesundes Windowssystem nicht irgendwelche Dateien immer wieder, also ist da noch was übrig vom Virus...

Avast sieht nach einem Antivirenprogramm aus. Kann es sein, dass das immer wieder etwas findet? Denn ohne Adminrechte könnte ein normales Programm ja da nicht schreiben, ein Dienst (wie ein Antivirenprogramm) schon.
Raid
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 16

Win XP Home, Win XP Prof., Win Vista
Delphi 2009 Arch.
BeitragVerfasst: Mo 01.06.09 04:57 
Wenn du das Programm Unlocker benutzen musst um die Dateien zu löschen, sind sie entweder von einer anderen EXE in benutzung oder ausgeführt, sonst würdest du den UNLOCKER ja nicht brauchen oder?
ffgorcky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 573

WIN XP/2000 & 7Prof (Familie:Win95,Win98)

BeitragVerfasst: Mo 01.06.09 08:39 
Also erst mal noch die Virenbekämpfung von klein auf:
Ich würde dann doch erst mal mit dem Explorer nach der Datei suchen (evtl mit *, falls unterschiedliche, fast gleiche Namen - also so bei einer Datei, die z.B. mal abcdef.exe und mal abcedf.exe heißt dann nach abc*f.exe) und alle davon gefundenen Dateien, solange sie dort nicht hingehören löschen.
Ween Du sie so nicht direkt löschen kannst, dann musst Du sie wohl erst mal im TaskManager beenden, was ja aber kein Problem sein sollte.
Und Du solltest nach Möglichkeit in den Registry-Verzeichnissen (also per Regedit)
.HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
und
.HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
(ohne die Punkte davor) nachgucken, ob dort ein Eintag für den Start des Programms steht - diesen dann natürlich auch löschen.

Ich hoffe, dass ich Dich jetzt nicht total verkehrt verstanden habe und dass Dir das hier weiterhilft, auch wenn das nicht so wirklich was mit der Programmiersprache zu tun hat - es sei denn, Du setzt das ganze in Quelltext um.
Dann könntest Du die Anwendung (also die *.exe) vielleicht auch uns offenbaren.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 01.06.09 11:05 
user profile iconRobii hat folgendes geschrieben Zum zitierten Posting springen:
Vor etwa 2 Monaten habe ich mir einen Virus eingefangen, denn ich dann auch erfolgreich beämplft habe.

Offensichtlich ja wohl nicht. Einzige sinnvolle Lösung ist das neu installieren des Betriebssystems. Alles andere, wie du selbst gesehen hats, führt nicht zum Ziel.
Robii Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236



BeitragVerfasst: Mo 01.06.09 19:34 
Ich bin mir zu 100% sicher das der Virus weg ist, nur die Datei hin und wieder erstellt wird. Jedesmal wenn die Datei erstellt wird bekomme ich 2 - 3 Virenwarnungen. Diese nerven, also wollte ich mir ein Programm schreiben, das die Dateien automatisch löscht. Wie ändere ich den Code so, das es Berechtigung hat die Dateien zu löschen? Ob der Virus noch da ist oder nicht, ist ja mein Problem.

Grüße.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 01.06.09 19:39 
Welches Betriebssystem ist das überhaupt? Unter XP als Admin hast du (leider) ohnehin überall Zugriff.

user profile iconRobii hat folgendes geschrieben Zum zitierten Posting springen:
Ich bin mir zu 100% sicher das der Virus weg ist, nur die Datei hin und wieder erstellt wird. Jedesmal wenn die Datei erstellt wird bekomme ich 2 - 3 Virenwarnungen.
Wenn du Virenwarnungen bekommst, ist der Virus auch nicht weg. :autsch: :autsch: :autsch:

user profile iconRobii hat folgendes geschrieben Zum zitierten Posting springen:
Wie ändere ich den Code so, das es Berechtigung hat die Dateien zu löschen?
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Es mit Adminrechten starten, also ggf. das entsprechende Manifest einkompilieren.
Aber der Zugriff kann auch durch das Antivirenprogramm schlicht verweigert werden, wenn es das als Virus erkennt. Und dann kannst du da nichts dran machen.

Im Grunde hast du so etwas vor wie Frau von der Leyen mit Kinderpornographie im Internet: Pappschild davor, damit man nix mehr vom Virus sieht, aber ihn nicht wirklich bekämpfen... :roll:

Du kannst natürlich einfach die Meldungen des Antivirenprogramms ausschalten, da dir deine Sicherheit ja nicht wichtig zu sein scheint. :nixweiss:
Robii Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236



BeitragVerfasst: Mo 01.06.09 20:00 
Der Hauptvirus ist zerstört. Nur der Restteil, ist noch da. Damit ich den weg bekomme, muss ich den Pc neu aufsetzen, dafür bin ich aber zu faul, deshalb mein kleines Programm was mir die lästige Löschaktion erspart. Wie kann ich das realisieren ? Grüße.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 01.06.09 20:02 
Ja, welches Betriebssystem ist es denn nun?
Bei XP: Bist du als Admin unterwegs?
Bei Vista: Ist die UAC aktiv?

Wenn beides nein (also Benutzertyp Virensammler), dann rühren die Zugriffsprobleme vermutlich vom Antivirenprogramm oder dem Virus selbst her.

Wenn Adminrechte fehlen: Zum dritten Mal: Mit dem entsprechenden Manifest...
Robii Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236



BeitragVerfasst: Mo 01.06.09 20:22 
Sorry, das hatte ich nicht gelsen.
Also ich habe Vista, bin Adminestrator und die BKS ist auch aus.

Grüße.
Ps.: Stelle mich heute etwas dumm an.
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 01.06.09 20:24 
Auch wenn es bereits mehrfach angesprochen wurde: Du dokterst lediglich an den Symptomen herum, an einer Neuinstallation kommst Du nicht vorbei, da der Virus ja anscheinend noch aktiv ist, sonst wäre die Datei ja nicht immer wieder da.
Dieses Thema ist gesperrt, Du kannst keine Beiträge editieren oder beantworten.

Das Thema wurde von einem Team-Mitglied geschlossen. Wenn du mit der Schließung des Themas nicht einverstanden bist, kontaktiere bitte das Team.