[C++] In die Hosts-Datei reinschreiben



  • Hi Leute, ich versuche schon längere Zeit in C++ mithilfe der WINAPI und verschiedenen anderen Möglichkeiten was in die hostsdatei reinzuschreiben.

    Dafür habe ich bereits versucht: fopen/fwrite, CopyFile und system("") nicht hat funktioniert obwohl das Programm 100% Adminrechte hat.

    Jetzt habe ich mal versucht das ganze in cmd zu machen mit dem Befehl:

    echo.127.0.0.1 blablabla.de>>%windir%\System32\drivers\etc\hosts
    

    Dieser Code ging in system("") sowie in einer als Admin gestarteten .bat nicht, jedoch als ich im Startmenü manuell cmd als Admin öffnete funktionierte es 😮

    Kann mir vllt jemand helfen was da eig los is...gibts 2 verschiedenen Arten von Adminrechten o.O



  • Nein, es gibt Administratoren und keine.
    Für Filestreams verwende bitte die aus der Standard-Bibliothek (aus <fstream> ).

    Sonst: Versuch, das Programm "als Administrator auszuführen".



  • welches Betriebssystem und dann die Version.
    Nach dem CopyFile tippe ich mal auf Win7.
    Da hilft dann die Standardbibliothek erstmal fstream nicht weiter.
    Insofern ein ziemlich überflüssiger Tip.
    Dafür nimmt man dann die Windows Api, den langjährigen Standard in diesem Bereich. Denn für Windows legt MS den Standard fest , niemand sonst :p.
    Die Api findest Du hier:
    http://msdn.microsoft.com/en-us/library/aa364232.aspx
    Du musst dann programmatisch die notwendigen Rechte setzen siehe auch
    http://msdn.microsoft.com/en-us/library/aa364399.aspx
    Ansonsten ist unter Win7 Admin nicht gleich Admin. Der Standardamin darf z.B. nicht in Systemordner schreiben.
    Über Admin-Privilegien und Sicherheit, die ziemlich komplex ist, erfährst Du bei der MSDN.
    Kleiner Tip noch. Wenn Du den Return bzw. die Fehlervariable errno auswertest, gibt es im Allgemeinen gute Hinweise, wo der Fehler liegt.


Anmelden zum Antworten