Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

[WIN32/SPEECH SDK] CONNECTION SERVEUR DE MESSAGERIE POP3


Information sur la source

Catégorie :API Classé sous : speechapi, pop3, thread, systray Niveau : Initié Date de création : 12/05/2007 Date de mise à jour : 18/05/2007 06:19:38 Vu / téléchargé: 5 293 / 415

Note :
Aucune note

Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Salut,

Voici une appli qui se connecte périodiquement à un serveur POP3 et dit combien vous avez de messages. Oui elle le dit, via le speech API, alors faite chauffer les enceintes. Après libre à vous de lancer votre client mail favori.

L'appli repose sur quatre composants.

1) synthèse vocale
Windows XP est livré par défaut avec une voix (Sam). Voir Panneau de Configuration/Sons Voix et Périphériques Audio/Voix.
Pour Vista j'ai pas testé mais il a le runtime SAPI 5.3 et selon mes infos cause en français...

Comme le speech API ne fonctionne QUE par l'interface COM, j'ai du ressortir VC6 pour créer une dll en C++ pour interfacer le composant COM avec n'importe quelle application C/C++. C'est très flexible et permet de développer avec GCC par exemple, en l' occurence un prog écrit en C.

Pour recompiler la dll de synthèse vocale il faut VC6 et le speech SDK 5.1.

2) Additionnellement, la config est stockée dans un fichier crypté: adresse du serveur POP, port, nom utilisateur ... La configuration se fait avec une petite interface graphique. Voir junk.c.

3) L'interface se loge automatiquement dans la barre de notification. Voir systray.c.

4) Le code illustre également une utilisation simple des sockets TCP INET sur win32, rapide survol du protocole POP3... Voir mail.c.
 

Source

  • //Thread de connection au serveur.
  • //Chaque minute, pour chaque boite, décrémente next_check de 1.
  • //Quand next_check = 0, se connecte et remet next_check à l'intervalle voulu.
  • static void POP_Thread(PVOID pvoid)
  • {
  • register int n;
  • while(1)
  • {
  • for (n=0; n<nbboites; n++)
  • {
  • if (c[n].next_check == 0)
  • {
  • mail_check (n); // nouveaux messages?
  • c[n].next_check = b[n].intervalle;
  • }
  • else --c[n].next_check;
  • }
  • sleep(60000); // attend 1 minute
  • }
  • }
//Thread de connection au serveur.
//Chaque minute, pour chaque boite, décrémente next_check de 1.
//Quand next_check = 0, se connecte et remet next_check à l'intervalle voulu.

static void POP_Thread(PVOID pvoid)
{
  register int n;
  while(1)
  {
    for (n=0; n<nbboites; n++)
    {
      if (c[n].next_check == 0)
      {
        mail_check (n); // nouveaux messages?
        c[n].next_check = b[n].intervalle;
      }
      else --c[n].next_check;
    }
    sleep(60000); // attend 1 minute
  }
}

Conclusion

Si vous créez un projet dans votre IDE favori, linkez le prog avec ws2_32.lib (ou .a), et speech.dll qui est fournie.

Il reste du boulot pour qu'il lise les mails ...
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

12 mai 2007 07:41:08 :
Remise en forme.
13 mai 2007 06:51:41 :
- Ajouté le nom de l'utilisateur, qui est dit en synthèse vocale. - Ajouté une variable qui stocke le nombre de messages entre les connections. Ainsi, si le nombre est identique, la voix ne dit rien. - Amélioré la gestion des erreurs des sockets en ajoutant WSAGetLastError(). - Simplifié les fichiers de la dll.
14 mai 2007 08:43:16 :
Version 3: - Ajout de la gestion de plusieurs boites. - Amélioré la sortie console: moins polluée. Il n'écrit et ne parle que s'il y a du nouveau - Amélioré certaines parties du code, en évitant d'empiler trop de variables sur le stack. - Augmenté l'intervalle de check à deux minutes.
15 mai 2007 10:39:53 :
Version 4 : Toute la partie saisie de données en console a été enlevée, car un GUI pour gérer les boites a été ajouté. Le GUI est lancé automatiquement si le fichier de stockage n'existe pas. Les deux appli (speech console et GUI) partagent la partie qui lit/écrit dans le fichier de stockage (l'objet junk).
15 mai 2007 10:45:06 :
Ajout du screenshot.
16 mai 2007 06:54:11 :
Version5: Ajouté un bouton dans l'interface de configuration pour dire le nom. La taille des messages est affichée en octets, Ko ou Mo (avant elle était affichée en octets). Autres modifications minueures.
16 mai 2007 21:56:28 :
upload du zip.
18 mai 2007 06:19:38 :
Version6: Oubliée la console. Un seul formulaire. Dans le Systray. Gestion du réseau sur un thread à part. Ajouté un intervalle de check propre à chaque boite.

Commentaires et avis

signaler à un administrateur
Commentaire de katsankat le 13/05/2007 06:52:37

Quelqu'un peut confirmer que l'exe fonctionne sans rien installer?

signaler à un administrateur
Commentaire de aardman le 13/05/2007 07:27:45

Salut,
Ca marche impec chez moi.

signaler à un administrateur
Commentaire de katsankat le 14/05/2007 08:45:18

Merci c'est bon à savoir Aardman.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Thread dans une dll [ par angel ] Est-il possible de créer un thread dans une dll ? Controler une ListBox avec un thread [ par header ] Apres avoir creer et appeler ma fct thread j'aimerai controler une listbox.(ou un autre controle)Comment je dois faire ???Comment attacher une variabl C++ Builder et systray !! [ par UncleShu ] Resalut,je voudrais savoir si qql'un à un code source pour permettre de mettre sa propre application dans le systray avec C++ Builder !!Merci d'avance Pointeur sur methodes avec parametre [ par Kinamstrong ] Salut a toi,Je cherche à savoir comment marche les pointeurs sur les methodes avec parametres.Qu'est ce qui va differencier deux meme methodes en cour Lancer une thread intraclasse [ par rudyg ] Salut tout le monde,depuis une methode de classe, je souhaite lancer une thread faisant appel a une AUTRE methode de la meme classe.Ex:void kernel::La Thread [ par Vince007 ] Bonjour, je vous laisse se message pour savoir si qqu'un qui connait bien les thread et les sémaphores sous Linux pourrait m'indiquer la méthode de co thread et librairies [ par galamor ] salut, je débute sur visual C++j'aimerai savoir si quelqu'un pourrait me dire où trouver des informations précises et/ou des exemples sur l'utilisatio terminer un thread [ par galamor ] salut,j'aimerai savoir quels sont les moyens les plus utilisés (traduire : les plus performants et les plus simples) pour dire à une thread de s'arrét J'veux dire qqch amon programme...HELP !!! [ par lutin ] Oui en fait, j'aimerais savoir si qqun peux m'aider dans l'utilisation des messages windows.J'explique : je crée une fenetre qui lance un threaddans m Thread?!? [ par couriousous ] Hello!Ma question est bête mais je la pose:Quesque c'est un Thread (une sorte processus pour avoir + de temp processeur) et comment en créer un en C++


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,998 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.