На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! user posted image
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.

Соблюдайте общие правила форума

Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как запустить программу/файл? (и дождаться ее завершения)
5. Как перехватить API-функции, поставить hook? (перехват сообщений от мыши, клавиатуры - внедрение в удаленное адресное прстранство)
... (продолжение следует) ...

Внимание:
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки - бан.
Мат в разделе - бан на три месяца...

Полезные ссылки:
user posted image MSDN Library user posted image FAQ раздела user posted image Поиск по разделу user posted image Как правильно задавать вопросы


Выразить свое отношение к модераторам раздела можно здесь: user posted image Rouse_, user posted image Krid

Модераторы: Rouse_, Krid
  
> Мужики, I need help ! , удаление mail из папки входящие
    В папке входящие (Outlook Express) есть письмо c именем ***. Надо програмно его удалить. Попытался бы разобраться сам, но времени в обрез, а программа срочно нужна. Заранее спасибо !
      На с++ есть (через МАПИ) - перегнать в дельфи вряд ли хватит опыта - надо?
        2 Lavrik
        Кинь в меня, покапаться, plz! Ё-майлlfp_tatprof@mail.ru
          Кидай на C++
            // 123.cpp : Defines the entry point for the console application.
            //

            #include "stdafx.h"

            #include <windows.h>
            #include <mapi.h>
            #include <stdio.h>

            int main(void)
            {
             ULONG error;                  // Для хранения кода ошибки
             LHANDLE lhSession;            // Сессия MAPI
             MapiMessage *MAPIMessage;     // Структура сообщения
             MapiRecipDesc *MAPIRecipient; // Структура получателя
             CHAR rgchMsgID[513];          // Идентификатор сообщение >512
             rgchMsgID[0]='\0';
             ULONG i;
             int totalLength;
                     

             HINSTANCE hMAPILib = LoadLibrary("MAPI32.DLL");  // Загружаем библиотеку
             if (hMAPILib==0)
               return 0;

             //Объявляем функции из библиотеки
             LPMAPILOGON lpfnMAPILogon = (LPMAPILOGON)GetProcAddress(hMAPILib, "MAPILogon");
             LPMAPILOGOFF lpfnMAPILogoff = (LPMAPILOGOFF)GetProcAddress(hMAPILib, "MAPILogoff");
             LPMAPIFINDNEXT lpfnMAPIFindNext = (LPMAPIFINDNEXT)GetProcAddress(hMAPILib, "MAPIFindNext");
             LPMAPIREADMAIL lpfnMAPIReadMail=(LPMAPIREADMAIL )GetProcAddress(hMAPILib, "MAPIReadMail");
             LPMAPIDELETEMAIL lpfnMAPIDeleteMail=(LPMAPIDELETEMAIL )GetProcAddress(hMAPILib, "MAPIDeleteMail");
             LPMAPIFREEBUFFER lpfnMAPIFreeBuffer=(LPMAPIFREEBUFFER )GetProcAddress(hMAPILib, "MAPIFreeBuffer");


            /*--MAPILOGON--------------------------------------------------------------*/
             error=(*lpfnMAPILogon)(0,   // Handle диалогового окна созданного MAPILogon
                                NULL,// Указатель на строку, содержащей путь к файлу настроек
                                 NULL,// Указатель на строку, содержащую пароль для доступа
                                MAPI_NEW_SESSION, // Флаги:
                          //   MAPI_FORCE_DOWNLOAD - функция пытается загрузить все сообщения
                        //   MAPI_LOGON_UI - показать диалог для идентификации
                        //   MAPI_NEW_SESSION - создать новую сессию
                                  0, // Зарезервировано
                                &lhSession);   // Указатель на сессию
             
             if (error!=SUCCESS_SUCCESS)
               return 0;

             // ЦЕЛЬ: вертимся в цикле, пока SUCCESS_SUCCESS, потом  вылетим break'om
             else{
             do{
              error = (*lpfnMAPIFindNext)(lhSession, // Сессия
                                         0,                        
                                         NULL,
                                         NULL,//rgchMsgID,      // Указатель на строку-идентификатор для поиска   TODO rgchMsgID
                                         MAPI_GUARANTEE_FIFO,   // Флаги:
                                 //   MAPI_GUARANTEE_FIFO - по времени получения
                                //   MAPI_LONG_MSGID - длтнный идентификатор сообщения
                                //   MAPI_UNREAD_ONLY - только не прочитанные сообщения
                                            0,                        
                                           rgchMsgID);      // Указатель на идентификатор сообщения
              if (error != SUCCESS_SUCCESS)
               break;

             
              error = (*lpfnMAPIReadMail)(lhSession,  // Сессия
                                        0,                        
                                        rgchMsgID,      // Указатель на идентификатор сообщения, которое должно быть прочитано
                                        MAPI_PEEK,      // Флаги:
                                 //   MAPI_BODY_AS_FILE - сообщение сохранено в файл
                                 //   MAPI_ENVELOPE_ONLY читать только заголовок письма
                                //   MAPI_PEEK - не отмечаются прочитанные сообщения пометкой непрочитанные
                                //   MAPI_SUPPRESS_ATTACH - приложения не загружено, но сообщение будет читаться в структуру MapiMessage
                                // Зарезервировано
                                         0L,
                                        &MAPIMessage);     // Указатель на место, куда будет сохранено сообщение

              if(error != SUCCESS_SUCCESS)
               break;

              if(strcmp(MAPIMessage->lpszSubject,"111")==0){  //проверка темы
               
               error=(*lpfnMAPIFreeBuffer)(MAPIMessage);//очищаем буффер - так надо!
               //если нашли письмо с нужной темой - удаляем его
               error = (*lpfnMAPIDeleteMail)(lhSession,  // Сессия
                                            0,                
                                                 rgchMsgID,
                                                 0,
                                                 0);
                   //if(error!=SUCCESS_SUCCESS )
                   //sorry
               break;
              }
             }while (1);


            /*--MAPILOGOFF-------------------------------------------------------------*/

                   // Закрытие сессии
                   (*lpfnMAPILogoff)(lhSession,        //Без флагов
                                 0L,
                                 0L,
                                 0L);
                   FreeLibrary(hMAPILib);
                   return 0;

             }
            }
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0478 ]   [ 16 queries used ]   [ Generated: 25.04.24, 11:25 GMT ]