Création de logiciels sur mesure
Bon et bien voila, ça y est, je commence mes modestes contributions Windev. J'ai enfin décidé de mettre à disposition quelques petits morceaux de codes que j'ai réalisés depuis que je développe.

Revenez de temps en temps voir les nouveautés.

Cette problématique s'est posée lorsqu'un des clients m'a demandé d'envoyer des messages en ayant l'historique des mails envoyés dans son logiciel de messagerie habituel.

On peut utiliser la commande "Mailto" mais celle-ci n'accepte pas les pièces jointes.
On peut utiliser un lien Ole mais cela ne fonctionne pas avec Outlook Express.
On peut utiliser CDO mais il n'est pas présent sur tous les ordinateurs et ne laisse pas de trace dans le logiciel de messagerie.

Je me suis donc tourné vers l'utilisation de la dll Mapi32 et le résultat est assez intéressant.

Vous pouvez télécharger la classe et une fenêtre d'exemple ici : wdmapi32.zip

Elle a été testée avec Outlook 2002, Outlook Express 6, Mozilla Thunderbird 1.0 et The Blat version 3.

Il est possible de mettre plusieurs destinataires, plusieurs destinataires en copie, plusieurs destinataires en copie cachées et plusieurs pièces jointes.

Limitations : a priori, il y a des soucis avec Outlook 2000. Cette version ne semble pas réagir comme les suivantes. La solution trouvée par Sylvain le Goff est de ne pas mettre d'adresse de destinataire mais uniquement le nom. Valeur Null dans le pointeur vers l'adresse. Le problème tourne sûrement autour de la résolution de cette adresse qui semble avoir changée entre la version 2000 et les suivantes.
Pour Outlook 2000 il est possible aussi d'utiliser CDO (voir plus bas) ou un lien OLE.

Si vous y apportez des modifications et si vous trouvez la solution pour 2000, je vous remercie de me les transmettre afin que je puisse faire une mise à jour.

Vous pouvez me transmettre vos commentaires par le biais du formulaire de contact.
Afin de ne pas avoir de souci lors d'envois ou réceptions via Internet, il peut être bon de connaître le type de la connexion en cours et son statut (hors connexion ou non).

Pour cela, l'utilisation de l'api "InternetGetConnectedStateEx" de la Dll "WinInet" peut nous aider.

Si vous désirez juste savoir si la connexion est en ligne ou non, coche "hors connexion" dans le navigateur, vous pouvez rechercher dans la base de registre

S_Cle="HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
S_Valeur="GlobalUserOffline"
N_EtatConnexion=RegistreLit(S_Cle,S_Valeur)

0 indique "connecté" et 1 "hors connexion"

Bien sûr, vous pouvez modifier cet état en écrivant la valeur désirée avec RegistreEcrit.
Il y a quelques années, j'avais besoin de visualiser les ressources partagées des réseaux de nos clients afin de pouvoir affecter une lettre aux ressources disques ou CD. Le but était de pouvoir accéder aux comptes-rendus des radiologues que nous archivions sur CD ou disque dur en fichiers zip.

J'ai récupéré cette fenêtre créé à partir de Windev 5.5 et je l'ai migrée en 7.5. Elle utilise une procédure qui s'appelle à chaque fois qu'elle tombe sur une ressource contenant d'autres ressources. Cela demanderait de faire une classe et je verrai lorsque j'aurai un moment.

Pour l'instant, vous pouvez obtenir les sources ici : WdEnumResource.zip

Modification du 01/03/2005 : il est maintenant possible de ne visualiser que les ressources partagées du poste local ou les ressources de tout le réseau.
Testé sur XP Pro, à voir avec d'autres OS.
Contributions Windev
Ce petit bout de code a surtout été fait dans le but de comprendre cette technologie. En fait, j'ai découvert CDO en faisant mes recherches sur Mapi32 et je me suis demandé ce que l'on pouvait faire avec.
Je n'en ai pas eu un besoin direct car CDO n'est pas présent sur tous les ordinateurs mais s'installe avec certains produits Microsoft ( voir : http://support.microsoft.com/default.aspx?scid=kb;fr;171440)

De plus avec Outlook je n'ai pas réussi à le faire fonctionner sans lui passer le serveur smpt du fournisseur d'accès.

Cependant, l'intérêt que je lui trouve est de pouvoir envoyer des messages sans avoir à répondre à la question de sécurité d'Outlook et de ne pas laisser de trace dans le logiciel de messagerie par défaut de l'ordinateur.

Il y a bien sur d'autres possibilités avec CDO mais je me suis cantonné à l'envoi de message.

Pour l'instant, vous pouvez obtenir les sources ici : WdCdoMessage.zip
Cet exemple est surtout ludique. Il permet de visualiser le taux d'occupation du processeur sous Windows XP et 2000 pro.

Le code source est téléchargeable ici : WdTauxProcesseur.zip
Ayant eu besoin de faire choisir des icones à un de mes clients, j'ai essayé d'extraire celles-ci de Windev. J'ai donc fait une petite fenêtre très succincte pour cela. Elle est facilement modifiable. Elle permet d'exporter les icones de Windev 8 dans des répertoires classés par type et taille.
Vous la trouverez ici : fn_exportcataloguewindev.wdw