Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi In hosts-Datei schreiben? (https://www.delphipraxis.net/139550-hosts-datei-schreiben.html)

Romi 31. Aug 2009 15:54


In hosts-Datei schreiben?
 
Hi,

ich versuche gerade zwecks automatischem Umleiten einer Hosts auf ihre direkte IP (weil einige bei mir nicht richtig aufgelöst werden) in C:\Windows\system32\drivers\etc\hosts zu schreiben. Lesen mit Reset() klappt super, aber immer wenn ich die Datei mit rewrite() öffne bekomme ich den "E/A-Fehler 32". Woran liegt das? Das Problem habe ich unter Windows 7 sowie Windows XP.

Code:
Delphi-Quellcode:
//Schnipp
assignFile(Datei, 'C:\Windows\System32\drivers\etc\hosts');
rewrite(Datei); //<-- Crash hier
//Schnapp
Jemand eine Idee?

Danke schonmal,
Roman

Bernhard Geyer 31. Aug 2009 15:56

Re: In hosts-Datei schreiben?
 
Ich sag mal: UAC. Du darfst nicht mit eingeschränkten Rechten Dateien unter System32 ändern! (Bzw. dein Delphi.Win32-programm wird eh nach SysWOW64 umgeleitet).

Suchbegriffe: UAC und Virtualisiertes Dateisystem.

Romi 31. Aug 2009 15:57

Re: In hosts-Datei schreiben?
 
Aber XP hat doch noch gar kein UAC und auch kein virtualisiertes Dateisystem, oder? Und in meinem Windows 7 ist UAC auch deaktiviert.

Bernhard Geyer 31. Aug 2009 16:01

Re: In hosts-Datei schreiben?
 
Zitat:

Zitat von Romi
Aber XP hat doch noch gar kein UAC und auch kein virtualisiertes Dateisystem, oder? Und in meinem Windows 7 ist UAC auch deaktiviert.

Dann schau mal ob die Datei Schreibgeschützt/versteckt/.. ist?

Romi 31. Aug 2009 16:03

Re: In hosts-Datei schreiben?
 
Zitat:

Zitat von Bernhard Geyer
Zitat:

Zitat von Romi
Aber XP hat doch noch gar kein UAC und auch kein virtualisiertes Dateisystem, oder? Und in meinem Windows 7 ist UAC auch deaktiviert.

Dann schau mal ob die Datei Schreibgeschützt/versteckt/.. ist?

Ne, ist sie nicht. Ich habe mir auch schon testweise Vollzugriff auf die Datei gegeben, hilft auch nicht.

himitsu 31. Aug 2009 16:04

Re: In hosts-Datei schreiben?
 
Hast du vielleicht ein Schutzprogramm installiert?

Klaus01 31. Aug 2009 16:05

Re: In hosts-Datei schreiben?
 
.. und Du weißt auch, das Du mit rewrite die Datei erst
entleerst und dann wieder beschreiben kannst?

Aus der Hilfe:
Zitat:

In Delphi code, Rewrite creates a new external file with the name assigned to F.
Grüße
Klaus

Romi 31. Aug 2009 16:08

Re: In hosts-Datei schreiben?
 
Zitat:

Zitat von Klaus01
.. und Du weißt auch, das Du mit rewrite die Datei erst
entleerst und dann wieder beschreiben kannst?

Ja, ich habe die Datei vorher in einem Array gespeichert damit ich sie wieder vollständig beschreiben kann :-D

Zitat:

Hast du vielleicht ein Schutzprogramm installiert?
Ich besitze noch nichtmal ein Antivierenprogramm.

Klaus01 31. Aug 2009 16:09

Re: In hosts-Datei schreiben?
 
.. kann es sein, dass Deine leseroutine die Datei noch ncht wieder
geschlossen hat? FileClose closeFile(File)?

Grüße
Klaus

Romi 31. Aug 2009 16:18

Re: In hosts-Datei schreiben?
 
Zitat:

Zitat von Klaus01
.. kann es sein, dass Deine leseroutine die Datei noch ncht wieder
geschlossen hat? FileClose closeFile(File)?

Grüße
Klaus

Aaah.. Jetz wo du's sagst. Ich Idiot hatte File doch glatt global deklariert (und auch immer wieder lokal) und es nicht merkt, und dazu auch noch woanders vergessen es wieder dicht zu machen. Danke an alle!


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz