В чём ошибка?
DWORD NOfBytes;
OVERLAPPED ovlp;
DWORD ffsze;
char buffer[250];
TCHAR title[MAX_PATH] = {0};
GetWindowText(GetForegroundWindow(),title,MAX_PATH); // получаем имя
sprintf(buffer," %s\r\n",title);
ffsze=GetFileSize(hFile,NULL);
ovlp.OffsetHigh=0;
ovlp.hEvent=NULL;
ovlp.Offset=ffsze;
WriteFile(hFile,buffer,strlen(buffer),&NOfBytes,&ovlp);
У меня получается вся строка.
Если есть ошибка, то она в WriteFile.
Посмотри, сколько байт записывается по факту.
Если хочешь дописывать в конец файла, то
Цитата:
To write to the end of file, specify both the Offset and OffsetHigh members of the OVERLAPPED structure as 0xFFFFFFFF. This is functionally equivalent to previously calling the CreateFile function to open hFile using FILE_APPEND_DATA access.
Думаю, стоит принудительно записывать в буфферы с помощью FlushFileBuffers.
Что содержит в buffer?
Что возвращает strlen(buffer)?
Что содержит в NOfBytes после вызова функции?
Советую научится пользоваться отладчиком, до того как лезть на форум - это и есть основная ошибка.
Цитата: kot_
Для отображения кода НЕОБХОДИМО использовать тег [ code ][ /code ] (без пробела).
Что содержит в buffer?
Что возвращает strlen(buffer)?
Что содержит в NOfBytes после вызова функции?
Советую научится пользоваться отладчиком, до того как лезть на форум - это и есть основная ошибка.
Что содержит в buffer?
Что возвращает strlen(buffer)?
Что содержит в NOfBytes после вызова функции?
Советую научится пользоваться отладчиком, до того как лезть на форум - это и есть основная ошибка.
Мне удалить пост, пока он не ответит на твоё сообщение? :)
Цитата: Alm3n
Мне удалить пост, пока он не ответит на твоё сообщение? :)
зачем?
Разобрался. Проблемы была в функции sprintf. Без неё всё работает. А как быть, если у окна название, например, "Блокнот"? Тогда в файл записывается набор символов.