Programm soll nur mit Admin. rechten Ausführbar sein

  • VB.NET

Es gibt 24 Antworten in diesem Thema. Der letzte Beitrag () ist von ~blaze~.

    Programm soll nur mit Admin. rechten Ausführbar sein

    Hallo Leute,
    ich möchte in C:\Program Files\MeinProg\settings.ini speichern. Doch leider bekomme ich keinen Fehler und er ändert die Datei trotzdem nicht. Ich vermute das es daran liegt das das Programm ohne Administrationsrechte ausgeführt wird. Wie kann ich es machen das es immer mit Administrationsrechten ausgeführt wird? Wenn das überhaupt der Fehler ist, doch ich vermute es mal.
    Hi
    ganz einfach: don't. Speichere gar nicht erst in diesen Pfad, das macht man einfach nicht mehr. Es ist einfach nicht sinnvoll.
    Wenn es tatsächlich mal Sinn machen sollte, stellt man das im Manifest der Anwendung ein. So löst man es über die vorgesehenen Pfade, z.B. Application.LocalUserAppDataPath.

    iEi zeigt dir, wie du es machen würdest, wenn der Zweck sinnvoll wäre, was er nicht ist, nur um's nochmal hervorzuheben.

    Gruß
    ~blaze~

    iEi schrieb:

    C:\Program Files\DeinProg\settings.ini das würde ich ändern in
    Application.StartupPath & "\settings.ini"
    Das würde ich ändern in:

    VB.NET-Quellcode

    1. Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "MyProgram\Settings.ini")
    Das verstehe ich ja und ich habe ja meine vorgehensweise geändert. Es tut mir leid wenn das nicht deutlich geworden ist, ich Speichere jetzt nicht in Program Fiels. Dein
    Ich kann es übrigens nicht ab, übergangen zu werden, insbesondere, da/wenn ich weiß was ich sage.

    habe ich nicht verstanden.
    Ok, dann passts, hab dann ich missverstanden, sry. Mir ist nur in letzter Zeit aufgefallen, dass meine Aussagen häufiger mal übergangen werden ohne dass man überhaupt darauf eingeht und entsprechend eine scheinbar funktionierende "Lösung" verwendet wird, die eben nicht zwangsweise funktioniert oder unelegant/unsauber usw. ist. Das nervt halt auf Dauer dann.

    Gruß
    ~blaze~
    Ich hab mich ein bischen udeutlich ausgedrückt. Meine weitere frage ist jetzt halt, MeinProgramm.exe ist and dem selben Ort wie Ordner "X". Wenn die settingsdatei in Odner "X" ist brauche ich Application.StartupPath & "\settings.ini" oder reicht "\settings.ini".
    Ich würde zu My.Settings raten, da dir MS dort eine komplett typisiertes System anbietet (für alles, was serialisierbar ist), wo die Settings-Datei genau dort abgespeichert wird, wo MS sie gerne haben will (AFAIK Appdata/Roaming). Meiner Erfahrung als Systemadministrator auf ein paar Terminalservern (wo Appdata geroamt wird), haben .NET-Anwendungen, die My.Settings verwenden, noch nie Probleme mit der Konfiguration gehabt. Andere Systeme, die ein eigenes Settings-System hatten, jedoch schon.
    Von meinem iPhone gesendet
    In einer Umgebung, die z. B. aus mehrern Terminalservern besteht, bei denen AppData geroamt wird, haben die User auf allen Terminalservern das selbe AppData\Roaming (wenn es so konfiguriert ist, was aber häufig gemacht wird). Wenn die Einstellungen bei AppData\Local/LocalLow gespeichert würden, hätte der User u. U. verschiedene Einstellungen auf den einzelnen Terminalservern, da diese dann lokal auf den einzelnen Servern liegen würden und er ggf. durch eine Lastenverteilung nicht immmer auf dem gleichen Server angemeldet wird. So ist es z. B. bei uns auf der Arbeit.
    Ich habe deshalb schon ein paar merkwürdige Problemstellungen erfahren.
    Solange es also keine Gigabytes sind, die man in AppData speichern will (Roaming wird häufig auf einen Netzwerkpfad gelegt), kann man das ruhig verwenden. Ansonsten Local verwenden, wenn es angebracht ist (z. B. wenn wirklich etwas Computerspezifisches gespeichert werden soll oder die Daten schlichtweg zu groß sind).

    Es bringt natürlich nichts, wenn man wie OpenOffice kommt, und in Roaming Daten speichert, die relative Pfade der OO-Installation auf dem Server/Rechner enthalten, auf dem OO das erste mal gestartet wurde (besonders ungünstig, da manche Ordnernamen bei der OO-Installation zufällig gewählt werden). Das führt zu sogenanntem "Clusterfuck".
    Von meinem iPhone gesendet

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „nikeee13“ ()

    Zu problemen kam es nicht. Ich habe eine settings.ini lieber. Du hast schon recht nikeee13, dass es sich anbietet auch der Einfachheit halber.Doch man kann im Programm selber einstellen wo die settings Datei liegen soll.