willbend Skrevet 28. april 2005 Del Skrevet 28. april 2005 Jeg har tenkt å lage en keylogger som lagrer informasjon i en txt fil. Her er den foreløbige koden: using System; using System.Windows.Forms; public class Keydemo:Form { string log; public Keydemo() { this.KeyUp += new KeyEventHandler(OnKeyPress); this.Text="En keylogger"; } public void OnKeyPress(object sender, KeyEventArgs e) { log=log+e.KeyCode.ToString(); } public static void Main() { Application.Run(new Keydemo()); } } Så skal jeg lagre dette i en txt fil. Har søkt mye, men fant ikke noe. Så spørsmålet er: hvordan lagrer jeg informasjon til en lokal fil ? Lenke til kommentar
GeirGrusom Skrevet 28. april 2005 Del Skrevet 28. april 2005 (endret) public void ToFile(string filename) { System.IO.FileStream stream = new System.IO.FileStream(filename, System.IO.FileMode.Append); System.IO.StreamWriter writer = new System.IO.StreamWriter(stream); writer.Write("Log started " + Date.Now().ToString() + '\n'); writer.Write(log); writer.Flush(); writer.Close(); } Du kan unngå å bruke stream, men bare bruker streamwriter, men jeg ser på det som en litt dårlig skikk.(kanskje ikke det akademiske miljøet) Når du legger sammen stringene, burde du legge til en newline '\n' Endret 28. april 2005 av GeirGrusom Lenke til kommentar
willbend Skrevet 28. april 2005 Forfatter Del Skrevet 28. april 2005 (endret) Har spurt flere andre plasser og har fått beskjed om å bruke C isteden. Lurer forresten på om Microsoft.net og alt det der som skal til for å få kjørt en exe fil(C#), følger med i windows Longhorn ? Endret 28. april 2005 av willbend Lenke til kommentar
GeirGrusom Skrevet 29. april 2005 Del Skrevet 29. april 2005 Du tenker på .NET Framework? ja, det følger vel også med Service Pack 2, hvis jeg ikke tar helt feil. kommentar: Du kan skrive log += e.KeyCode.ToString(); istedet for log = log + (dette er Visual Basic måten å gjøre det på) Lenke til kommentar
Gråskjegg Skrevet 30. april 2005 Del Skrevet 30. april 2005 Ok, hvis vi først skal spikke fliser; Bruk også Environment.Newline og ikke '\n' Så blir det riktig i andre OS også, og mer lesbart. - grå - Lenke til kommentar
GeirGrusom Skrevet 30. april 2005 Del Skrevet 30. april 2005 (endret) ... ville ikke "\n" er vel stort sett det samme som Environment.Newline, er det ikke? Tror nok Compileren bytter ut "\n" med Environment.Newline, for det er neppe hardkodet som 0x000d000a(windows unicode) Endret 30. april 2005 av GeirGrusom Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå