Composant UltraVNC en WinDev 11
Niveau requis : Débutant / Intermédiaire / Expert
Date : 03 / 05 / 2007
Introduction à UltraVNC
UltraVNC SingleClick est un logiciel gratuit permettant de prendre le contrôle d'un PC client via internet depuis un PC helpdesk.
La nuance avec UltraVNC (installation classique), c'est qu'il n'y a pas d'installation à faire, ni de paramètres à passer à l'exécutable. Le client initie la communication vers vous en un seul clic. Du coup, plus de problème de routeur chez le client. Plus d'infos : UltraVNC singleClick
Le PC helpdesk, (vous), devra avoir préalablement installé UltraVNC sur son PC. Voir "Installeur UltrVNC 1.0.2 Complet Fr" à la page du site FR d' UltraVNC.
Lorsque l'installation est terminée, vous devez démarrer UltraVNC en mode écoute. Si vous faites des tests via internet et que le PC helpdesk se trouve derrière un routeur, vous devez rediriger dans votre routeur le port 5500 vers le PC helpdesk.
Introduction du composant
J'ai donc créé un composant WD11 pour lancer directement la communication depuis une application WinDev, voici WDUltraVNC
Les codes sources du composant et de l'exemple sont livrés. Les codes sources sont en WD-Libre. Enfin, l'utilisation de ce composant n'installe rien chez vos clients et ne touche pas à leur base de registre (version 1.00 uniquement). Tout est transparent pour l'utilisateur final. Tout ce qui est nécéssaire se trouve dans le composant lui-même.
Téléchargement : wdUltraVNCSC.zip
L'archive contient les code sources du composant et d'un exemple d'utilisation.
Eléments
Les éléments dans le projet du composant sont : (en rouge = non repris dans le WDK)
fen_DBContainer : Fenêtre permettant de remplir le fichier HF DBContainer. Cette DB contient tous les fichiers nécéssaires au bon fonctionnement d'UltraNVC SC. Les 4 fichiers d'UltraNVC SC se trouvent dans le répertoire (winvnc.exe, vnchooks.dll, icon1.ico et icon2.ico) Notez au passage que vous pouvez remplacez les icônes par les vôtres.
fen_Test : Fenêtre permettant de tester la classe cSingleClick
cSingleClick : Classe princiaple du composant.
UVNC-SC.wdd : Analyse décrivant le fichier HF DBContainer
DBContainer.* : Fichier HF DBContainer + Mémo + Index (ces 3 fichiers sont intégrés directement dans le composant)
Classe cSingleClick
Constante (dans la déclaration de la classe) :
cHlpDsk : Chaine permettant de créér le fichier texte HelpDesk.txt nécéssaire à winvnc.exe
Il est possible de personnaliser les ballons affichés dans la zone de notification système
La chaîne ***REPLACE_PARAMS*** est remplacée par la chaîne de connexion requise pour winvnc.exe
Les attributs : (les attributs sont tous accessibles)
m_sRepSC : Répertoire temporaire pour extraire les fichiers de DBContainer et exécuter winvnc.exe
m_sHost : Adresse IP ou URL sans le HTTP:// !!!!!
m_nPort : Port utilisé (par défaut, mettre 5500)
m_nId : Id de l'utilisateur pour la connexion du répétiteur (NAT)
Les méthodes : (en rouge = méthode privée) Il n'y a pas de paramètres à passer aux méthodes
Constructeur : Initialisation des attributs avec les valeurs par défaut et création d'un répertoire temporaire pour extraire les fichiers d'UltraNVC-SC
destructeur : Suppression du répertoire temporaire
fGetParams : Retourne la chaine de connexion à insérer dans le fichier HelpDesk.txt
pExtract : Extraction des fichiers d'UltraNVC-SC dans le répertoire temporaire.
pStartSC : Crée d'abord le fichier HelpDesk.txt adéquat dans le repertoire temporaire et lance ensuite le programme winvnc.exe (en invisible) pour initier la prise de contrôle à distance
Exemple 1/3
Initialisation du projet
GLOBAL
gclClSC est un cSingleClick
Clic sur btnStartRC
gclClSC:m_sHost = "Fab.DynDns.com" // fausse URL
gclClSC:m_nPort = 5500
gclClSC:pStartSC()
Exemple 2/3
Initialisation du projet
GLOBAL
gclClSC est un cSingleClick
Clic sur btnStartRC
gclClSC:m_sHost = "192.168.0.33" // ici, adresse ip locale
gclClSC:pStartSC()
Exemple 3/3
Initialisation du projet
GLOBAL
gclClSC est un cSingleClick
Clic sur btnStartRC
gclClSC:m_sHost = "199.188.177.166" // ici, adresse ip inventée
gclClSC:m_nId = 3 // On demande l'assitance du PC 3
gclClSC:pStartSC()
Conseil
Toujours créer l'objet dans l'initialisation du projet