Vista Datei schreiben?

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von Lupus.

    Vista Datei schreiben?

    Hi,
    ich hab nen Programm geschrieben, bei dem was in ne Textdatei geschrieben werden soll (mit WriteAllText).
    Das Programm läuft aber auf dem Laptop meiner Schwester nicht, sie hat Vista. Durch die Fehlermeldungen vermute ich, dass die Textdatei irgendwie nicht geschrieben wird. Hat da jemand von euch ne Ahnung, oder hatte schonmal nen ähnliches Problem?

    mfg, Lupus
    spontan würd ich mal gerne wissen, ob es vllt an einem falschen pfad liegt? könntest du vllt mal einen ausschnitt des quelltextes posten, dann teste ich das mal bei mir (mit vista)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Phil“ ()

    es ist im prinzip nur das:

    VB.NET-Quellcode

    1. My.Computer.FileSystem.WriteAllText(Pfad + "\Files\Angemeldet.ic", "ok", False)


    Und der Pfad ist bestimmt vorhanden, weil ich auch nocheinmal kontrolliert habe, das "Files" existiert und die Variable Pfad ist das Startverzeichnis.

    Allerdings hab ich eine andere Vermutung: Das Programm hat meine Schwester in den Ordner C:\Programme geschoben, und bei Vista gibts ja irgendwie ne Benutzer-Einschränkung für den Schreib-Zugriff in dem Ordner, oder?
    mit dem Startverzeichnis mein ich Application.StartupPath
    also ich hab nen Testprogramm geschrieben und das bei meiner Schwester laufen lassen:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    3. Dim Pfad As String = Application.StartupPath + "\Files\Angemeldet.ic"
    4. MsgBox(Pfad)
    5. My.Computer.FileSystem.WriteAllText(Pfad, "ok", False)
    6. End Sub
    7. End Class


    Das Programm war in einem Unterordner von C:\Programme, und den Ordner Files hab ich auch vorher erstellt.
    In der Messagebox wurde das Richtige (C:\Programme\Unterordner\Files\Angemeldet.ic) angezeigt, es gab auch keine Fehlermeldung. Nur die Datei war nicht da.....
    jo, du musst eine verknüpfung zum programm erstellen und dann die eigenschaften der verknüpfung aufrufen. da wählst du dann den register "verknüpfung" und klickst da auf erweitert. da kannst du dann ein häkchen bei der einstellung "Als Administrator ausführen" machen.
    du musst dann eben nur immer die verknüpfung aufrufen wenn du das programm starten willst ;)
    Des denk ich auch, Vista hat insgesamt nen Rad ab. meine schwester und ich haben ne halbe stunde gebraucht, um nen ordner im netzwerk so freizugeben, dass netzwerk-benutzer drauf zugreifen können... ?(
    des nervt schon, wenn man bedenkt, dass man da immer drauf achten muss
    Du kannst gerne deine Gedanken, Kommentare und Eindrücke im Vista-Thread hinterlassen :)

    ich persönlich hab mich erst einmal mit vista wirklich auseinander gesetzt, da musste ich nen computer warten und das Ergebnis war ne Deinstallation von Vista :)
    Ansonsten find ich das, was ja so doll an Vista ist (u.A. auch mit den Berechtigungen) geklaut und nicht so gut wie das Original.

    b2t: Linux ist das beste Vorbild: owner: root (root = Admin, wird nur sehr selten verwendet) und dann mit chmod rechte für fremde benutzer einstellen.
    Das System hat sich bewährt - ich hab echt keine Ahnung, warum M$ das versucht nachzuahmen und dann komplett versaut :(

    Ein Work-Around für dich:
    In meinen Augen kommt das großteils auch auf die Zielgruppe an - die meisten "proz" und "hackerz" arbeiten mittlerweile nurnoch als Admins oder Super-User unter Vista, in die richtung musst du dir also weniger sorgen machen.
    Allgemein sollte man da aber beachten: Einstellungen solltest entweder in die Registry packen oder in C:\documents and settings\[username]\...
    Nur, wenn es um richtige Dateien handelt (Updates, Datenbanken, Dateien, die nicht Benutzerbezogen sind, ...) dazu schreiben, dass das Programm im Admin-Modus laufen muss, wenn Zugriffe fehlschlagen.


    so long..
    Andy

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Mad Andy“ ()