Gmail notifier, pop checker + pilotage led asus

Soyez le premier à donner votre avis sur cette source.

Vue 4 838 fois - Téléchargée 340 fois

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

Ajouter un commentaire Commentaires
c3r3b3llum Messages postés 1 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 20 novembre 2008
20 nov. 2008 à 21:00
pourrais tu detailler ton code je peine un peu a la comprendre, ta source m'interesse au plus haut point !!!

dans tous les cas, beau travail.
cs_FloFlo91 Messages postés 7 Date d'inscription dimanche 28 mai 2006 Statut Membre Dernière intervention 19 novembre 2008
18 nov. 2008 à 20:17
Si vous voulez des fonctionnalités, dites le.
Je verrais ce que je ferais.
F.

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.