UPDATE
Похоже снова появился интерес к моей программе, поэтому специально для Set_ и Alex.
Архив с PDF статьи в 159 номере журнала "Xakep" и исходниками к ней.
Примечания по исходникам: программа не без косяков - она не корректно закрывает открытый hMap. MapViewOfFile должен закрываться функцией UnmapViewOfFile, при этом мне необходимо было изменять выделенную память и не записывать изменения в файл... MapViewOfFile нужно было открывать с флагом FILE_MAP_COPY, а CreateFileMapping с флагом PAGE_READONLY...
Прошел всего год, и вот настал тот момент, когда благодаря стараниям SOLON7 формат истории был покорен :)
По многочисленным просьбам о новой версии (как никак больше 100 человек проголосовало в опросе) я ее родил:
Это не полноценный релиз, многое из задуманного еще не написано, просто нет времени. В комментариях отпишите, какие функции вы бы хотели увидеть в релизе.
На данный момент программа поддерживает:
- Сохранение списка e-mail
- Сохранение переписки в виде текста и RTF
- Сортировка списка e-mail по алфавиту и количеству сообщений (ЛКМ по заголовку столбца)
- Просмотр фото контакта, а так же ссылки на все сервисы: мир, фото, видео, блоги (ПКМ на e-mail в списке либо меню "Контакт")
- Поиск по истории (пока ищет только первое совпадение с начала)
- исправлен баг с переполнением при формировании RTF (обнаружил SOLON7);
- исправлен баг с выделением 0 байт памяти и попыткой записи туда при пустой переписке (спасибо yuran666666 aka call_0day, за файл истории).
Скачать версию 3.0.0.2
Консольный вариант версии 3.0
Иструкция пользователя
История Mail.ru Агента представляется собой файл mra.dbs, который является дампом памяти и обычно расположен по пути %Application Data%\Mra\Base\mra.dbs.
Windows XP | C:\Documents and Settings\%username%\Application Data\ |
Windows 7 | c:\Users\%username%\AppData\Roaming\ |
#include "tchar.h" TCHAR path[MAX_PATH]; // сюда упадет путь для текущего пользователя ExpandEnvironmentStrings(_TEXT("%appdata%\\Mra\\Base\\mra.dbs"),path,sizeof(path));Раздобыть чужую переписку можно разными способами, это тема отдельного разговора, а самый простой вариант на мой взгляд - придти и скопировать (важно, чтобы Mail.Ru Агент не был запущен, а то он не даст скопировать файл т.к. сам работает с ним).
Открыв Mail.ru History Reader в главном меню выбираем "История - > Открыть" и указываем программе путь к нужному файлу истории.
Если в истории храниться переписка не одного пользователя, это отобразится в выпадающем списке, который расположен под меню (как на моём скриншоте).
Таблица "Почта" показывает список e-mail с которыми переписывался данный пользователь; в правом столбце указано количество сообщений.
Если нажать на заголовок правого столбца, то программа отсортирует таблицу в порядке убывания/возрастания количества сообщений.
Переписка открывается двойным кликом по нужной строке таблицы.