Ordner überwachen und Benutzername ausgeben

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von marctheshark.

    Ordner überwachen und Benutzername ausgeben

    Hallo zusammen,

    ich habe mir eine Ordnerüberwachung erstellt, funktioniert bestens.
    Ich starte das Programm auf einem Server und möchte nun noch den Benutzernamen von demjenigen der die Datei verändert in die log Datei schreiben.
    Wie kann ich das am besten machen?

    Vielen Dank

    VB.NET-Quellcode

    1. Imports System.IO
    2. Public Class Form1
    3. Private WithEvents m_fsw As IO.FileSystemWatcher
    4. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    5. m_fsw = New IO.FileSystemWatcher("F:\daten")
    6. m_fsw.EnableRaisingEvents = True
    7. m_fsw.IncludeSubdirectories = True
    8. End Sub
    9. Private Sub m_fsw_Created(ByVal sender As Object, ByVal e As System.IO.FileSystemEventArgs) Handles m_fsw.Created
    10. Dim pfad As String = e.FullPath
    11. Dim zeit As String = TimeOfDay
    12. ' MessageBox.Show(pfad & " wurde um " & zeit & " " & "erstellt")
    13. Dim fstr As New IO.FileStream("C:\Datenlog.log", FileMode.Append, FileAccess.Write)
    14. Dim write As New StreamWriter(fstr)
    15. write.Write(pfad & " wurde um " & zeit & " " & "erstellt")
    16. write.WriteLine()
    17. write.Close()
    18. fstr.Close()
    19. End Sub
    20. Private Sub m_fsw_Deleted(ByVal sender As Object, ByVal e As System.IO.FileSystemEventArgs) Handles m_fsw.Deleted
    21. Dim pfad As String = e.FullPath
    22. Dim zeit As String = TimeOfDay
    23. ' MessageBox.Show(pfad & " wurde um " & zeit & " " & "gelöscht")
    24. Dim fstr As New IO.FileStream("C:\Datenlog.log", FileMode.Append, FileAccess.Write)
    25. Dim write As New StreamWriter(fstr)
    26. write.Write(pfad & " wurde um " & zeit & " " & "gelöscht")
    27. write.WriteLine()
    28. write.Close()
    29. fstr.Close()
    30. End Sub
    31. Private Sub m_fsw_Renamed(ByVal sender As Object, ByVal e As System.IO.RenamedEventArgs) Handles m_fsw.Renamed
    32. Dim pfad As String = e.FullPath
    33. Dim zeit As String = TimeOfDay
    34. ' MessageBox.Show(pfad & " wurde um " & zeit & " " & "umbenannt")
    35. Dim fstr As New IO.FileStream("C:\Datenlog.log", FileMode.Append, FileAccess.Write)
    36. Dim write As New StreamWriter(fstr)
    37. write.Write(pfad & " wurde um " & zeit & " " & "umbenannt")
    38. write.WriteLine()
    39. write.Close()
    40. fstr.Close()
    41. End Sub
    42. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    43. Me.Close()
    44. End Sub
    45. End Class



    Gruß vom Shark
    Meinst du den Benutzernamen vom aktuellen benutzerkonto , Rechnername ?

    VB.NET-Quellcode

    1. MsgBox(Environment.UserName) 'Username des Aktuellen Benutzerkontos
    2. MsgBox(Environment.MachineName) 'Rechnername
    GOOGLE ist mein Meister :)
    @ Bady
    Vielen Dank für die schnelle Antwort, jedoch funktioniert das nicht so wie ich mir es vorstelle.
    Dein Vorschlag gibt mit immer den Benutzer des Servers (Admin) und entsprechend auch den Rechnernamen zurück.
    Das heist, dass immer der Lokale Rechner abgefragt wird.
    Ich möchte jedoch den Benutzernamen des Netzwerkbenutzers der die Datei verändert, denn sonst habe ich ja überall den gleichen Benutzer und Rechnernamen in meiner log Datei wenn etwas verändert wird.



    Gruß vom Shark