2017-06-24 106 views
-4

我試圖通過C++編寫按鍵記錄器,並且我想保存按下文本文件中的任何按鍵。
我可以知道什麼鍵被按下,但我有問題,當程序想要保存鍵只是保存上次按鍵。我怎樣才能解決這個問題 這是代碼:如何保存在文本文件中按下的按鍵

#include<iostream> 
#include<string> 
#include<Windows.h> 
#include<conio.h> 
#include<fstream> 

using namespace std; 

int main() 
{ 

    system("color 09"); 
    int asciiValue; 
    char key; 
    cout << "enter any key " << endl << endl; 
    cout << "press ESC to exit.." << endl << endl; 
    while (1) 
    { 
     key = _getch(); 

     asciiValue = key; 

     if (asciiValue == 27) 
     { 
      system("cls"); 
      system("color 8a"); 
      cout << "\n\n\n\n\n\n\n\n\t\t\t\tCLOSE" << endl << endl; 
      Sleep(1000); 
      exit(1); 
     } 


     cout << "key pressed is : \" " << key << " \"" << "his Value = " << asciiValue << endl << endl; 

     ofstream o("keylogger.txt"); 
     o << key; 
     } 


    cin.ignore(1); 
    return 0; 
} 
+1

開幕前'ofstream的O'你做重新打開每次循環的文件,並在寫之前清除其內容。要麼在循環之前打開文件,要麼閱讀'ofstream'的文檔以瞭解如何以追加模式打開文件(不會清除內容,而是附加到文件)。 – Peter

回答

1

你正在創建在每次迭代的新文件。
只要把線:

ofstream o("keylogger.txt"); 

while循環

+0

它不會做,如果我把它放出來,而循環,因爲它不能出去,而循環 –

+0

@IbrahimTEslim我不明白你爲什麼不能:'ofstream o(「keylogger.txt」); while(cond){...} return 0;' – Rama

+0

while(cond)是什麼意思? –

相關問題