Gmail notifier, pop checker + pilotage led asus

Description

Pour ceux qui on un ordinateur portable Asus.
Il existe une diode pour signaler les nouveaux mails.

Mais il n'existe pas de programme pilotant cette diode pour signaler de nouveaux mails sur les serveur Pop (courrier) et encore moins pour ceux qui ont un compte Gmail.

Logiciel minimal.
Pour l'instant on ne peux vérifier qu'un compte à la fois.
Le login et le pass doit etre mis en dur avant la compilation (pour l'instant.

Il gère :
- Les comptes Pop
- Les comptes Pop sécurisés.
- Les comptes Gmail

Pour compiler il faut ces librairies :
- openssl (http://www.openssl.org/)
- curl (http://curl.haxx.se/)

MAJ 18/11 : Ajout d'un trayicon, menu, ....
MAJ 25/11 : Ajout de la sauvegarde de compte Gmail (évite de toujours à avoir à taper le user/pass). Mlib.lib à linker pour avoir les deux fonctions de cryptage/decryptage de password (car sauvegarde en clair dans le registre).

Source / Exemple :


#include "mail.h"
#include "Asus.h"
#include "Gmail.h"
#include <windows.h>
#include "../resource1.h"
#include "callbacks.h"

extern HANDLE ATKACPIhandle;

// Variables de controle
BOOL Fait = 1;
int mail;
        WNDCLASS wndclass;

// Elements
NOTIFYICONDATA TrayIcon;
HINSTANCE hinst;

// Timers
UINT_PTR Timer;
#define TIMER_ID 01

// Resources
HICON Online;
HICON Offline;

// Handle de dialogue.
HWND hMain, hGmail, hPop;

char Login[100];
char Password[100];

// ID MSG

// TRAYICON
#define WM_NOTIFYICON WM_USER+1

// MACRO
#define Load_Icon(icone) (HICON)LoadImage(hinst,icone,IMAGE_ICON,0,0,LR_DEFAULTSIZE);

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst, PSTR cmdLine, int iCmdShow)
    {
        
        MSG msg;

        
        
        hinst = hInstance;
        wndclass.hInstance = hInstance;
        wndclass.lpszClassName = "hyc";
        wndclass.lpfnWndProc = wndMain;

        Online = Load_Icon("ICONE");
        Offline = Load_Icon("ICONE1");

        do {
            

            if (RegisterClass(&wndclass) == 0 ) break;

            hMain = CreateWindow("hyc", "hyc", WS_OVERLAPPEDWINDOW,
                CW_USEDEFAULT, CW_USEDEFAULT,
                CW_USEDEFAULT, CW_USEDEFAULT,
                NULL, NULL, wndclass.hInstance, NULL);

            if (!hMain) break;
            ZeroMemory(&TrayIcon, sizeof(NOTIFYICONDATA));
            TrayIcon.cbSize = sizeof(NOTIFYICONDATA);
            TrayIcon.hWnd = hMain;
            TrayIcon.uID = 0;
            TrayIcon.hIcon = Online;

            TrayIcon.uCallbackMessage = WM_NOTIFYICON;
            TrayIcon.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;

            strcpy(TrayIcon.szTip, "Non Connecté");
            Shell_NotifyIcon(NIM_ADD,&TrayIcon);

            Init_ws32();
            InitATKACPI();
      

            while(GetMessage(&msg, NULL, 0, 0))
            {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
            }

        } while(0);

    
        if(ATKACPIhandle)
            CtrlACPI(MLED, 1, 1);

    }

void Update_TI(int nb)
{  
    char temp[100];
    switch(nb)
    {
    case -3:
            strcpy(TrayIcon.szTip, "Connexion refusée");
            TrayIcon.hIcon = Offline;
            CtrlACPI(MLED, 1, 1);
            break;
    case -2:
            strcpy(TrayIcon.szTip, "Pas de connexion reseau");
            TrayIcon.hIcon = Offline;
            CtrlACPI(MLED, 1, 1);
            break;
    
    case -1:
            strcpy(TrayIcon.szTip, "Pas de connexion internet");
            TrayIcon.hIcon = Offline;
            CtrlACPI(MLED, 1, 1);
            break;
    case 0:
            strcpy(TrayIcon.szTip, "Pas de nouveau message");
            TrayIcon.hIcon = Online;
            CtrlACPI(MLED, 1, 1);
            break;

    case 1:
            strcpy(TrayIcon.szTip,"Vous avez 1 nouveau message");
            TrayIcon.hIcon = Online;
            CtrlACPI(MLED, 1, 0);
            break;
    default: 

            sprintf(temp,"Vous avez %d nouveaux messages",nb);
            strcpy(TrayIcon.szTip,temp);
            TrayIcon.hIcon = Online;
            CtrlACPI(MLED, 1, 0);
    }

    Shell_NotifyIcon(NIM_MODIFY,&TrayIcon);
}

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.