Skip navigation.

exploreopera

| Help

Sign up | Help

photo

Groumphy au quotidien

Posts tagged with "ini"

AutoIt : créer un sondage

, , , ...

Dans les très petites entreprises, déployer un système de sondage est assez fastidieux... Mais surtout onéreux.

Toutefois, il y a des moyens gratuits et puis il y a le bricolage par le développement d'un petit outil... Regardons comment cela se passe !

Définissons en premier temps les propriétés de l'exécutable
; *********************************************************
; Propriétés de l'exécutable
; *********************************************************
#Region
#AutoIt3Wrapper_Version=dev
#AutoIt3Wrapper_outfile=eiq.exe
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_Description=Logiciel d'enquête
#AutoIt3Wrapper_Res_Fileversion=0.0.1.1
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Res_LegalCopyright=© Groumphy 2008
#AutoIt3Wrapper_Res_Language=2060
#AutoIt3Wrapper_Res_Field=Company|Privé
#AutoIt3Wrapper_Icon=monIcone.ico
#EndRegion


Les obligatoires :
#NoTrayIcon
#include <GUIConstants.au3>


Les variables
; *********************************************************
; Déclaration des variables
; ********************************************************* 
Dim $s_fichierINI = "parametres.ini"
Dim $s_fichierResultat = "enquete.txt"
Dim $s_lectureSectionUtilisateur = IniReadSection($s_fichierINI, "UTILISATEURS")
Dim $i


L'appel des fonctions...
_version("DEV")
_verificationFichierResultat()


Les fonctions...

Vérifie que le nom d'utilisateur se trouvant dans le fichier INI est bien de valeur Y (pour yes), si la valeur est bien Y, lance la GUI pour l'enquête...
Func _routineIdentification()
For $i = 1 To $s_lectureSectionUtilisateur[0][0]
If $s_lectureSectionUtilisateur[$i][0] = @UserName Then
If $s_lectureSectionUtilisateur[$i][1] = "Y" Then _GUI()
Else
;MsgBox(0, "", "Ne rien faire")
EndIf
Next
EndFunc


La GUI principale.
Elle affiche deux labels, une combox qui permet un choix, ce choix est récolté et placé dans un fichier texte.
Func _GUI()
MsgBox(0, "", "lancement GUI")
#Region ### START Koda GUI section ### Form=i:\script\en développement\enquete satisfaction it\gui_enqueteinformatique.kxf
GUICreate("Enquête informatique", 272, 219, 246, 115)
GUICtrlCreateLabel("Afin d'optimiser son efficacité, le service informatique ", 10, 10, 254, 17)
GUICtrlCreateLabel("vous demande de répondre à la question suivante :", 10, 30, 256, 17)
GUICtrlCreateGroup(" Qualité du support : ", 25, 55, 225, 105)
GUICtrlCreateLabel("Veuillez choisir dans la liste déroulante.", 35, 75, 185, 17)
GUICtrlCreateLabel("Quelle est la qualité du support donné ?", 35, 95, 190, 17)
$cbx_ChoixListeDeroulante = GUICtrlCreateCombo("Sélectionnez votre choix", 35, 115, 200, 25, -1, -1)
GUICtrlSetData($cbx_ChoixListeDeroulante, "Excellente|Très bonne|Bonne|Médiocre|Très mauvaise")
GUICtrlSetTip($cbx_ChoixListeDeroulante, "Faite votre choix dans la liste déroulante")
GUICtrlSetCursor ($cbx_ChoixListeDeroulante, 0)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$btn_Valider = GUICtrlCreateButton("&Valider", 160, 175, 100, 33, 0)
GUICtrlSetTip($btn_Valider, "Valider l'enquête informatique")
GUICtrlSetCursor ($btn_Valider, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
;Case $cbx_ChoixListeDeroulante
Case $btn_Valider
$cbx_ChoixListeDeroulante = GUICtrlRead($cbx_ChoixListeDeroulante)
If $cbx_ChoixListeDeroulante = "Sélectionnez votre choix" Then
MsgBox(0 + 32, "Information", "Vous n'avez effectué aucun choix dans la liste déroulante.")
Else
MsgBox(0, "Tracking", "Choix : " & $cbx_ChoixListeDeroulante)
GUISetState(@SW_HIDE)
; Lancer l'écriture dans un fichier texte !!
Dim $s_OuvertureFichier
$s_OuvertureFichier = FileOpen($s_fichierResultat, 1)
FileWriteLine($s_OuvertureFichier, @UserName & @TAB & $cbx_ChoixListeDeroulante)
FileClose($s_OuvertureFichier)
_ChangeValeurINI("N")
MsgBox(0, "", "Valeur changée en N, sortie")
EndIf
EndSwitch
WEnd
EndFunc


Une fonction permettant de changer la valeur du nom d'utilisateur... Le plus simple possible.
Func _ChangeValeurINI($s_Valeur)
IniWrite($s_fichierINI, "UTILISATEURS", @UserName, $s_Valeur)
EndFunc


Fonction vérifiant la présence des fichiers obligatoires...
Func _verificationFichierResultat()
If NOT FileExists($s_fichierResultat) Then 
MsgBox(0, "Erreur", "Pas de fichier résultat !")
Exit
ElseIf NOT FileExists($s_fichierINI) Then
MsgBox(0, "Erreur", "Pas de fichier d'initialisation")
Exit
Else
_routineIdentification()
EndIf
EndFunc


Une fonction Goonie pour débuter et vérifier l'état d'avancement de la fonction...
Func _version($s_typeVersion)
If $s_typeVersion = "DEV" Then
$s_typeVersion = "Le logiciel lancé est en devélopement et est présenté à titre d'idée. V.DEV"
ElseIf $s_typeVersion = "ALPHA" Then
$s_typeVersion = "Le logiciel lancé est en développement et nécessite encore des améliorations " & @CR & _
"toutefois il est parfaitement exploitable. V.ALPHA"
ElseIf $s_typeVersion = "BETA" Then
$s_typeVersion = "Le logiciel lancé est en version de test et nécessite encore des corrections " & @CR & _
"Merci de faire un feedback à xxxx. V.BETA"
ElseIf $s_typeVersion = "PROD" Then
$s_typeVersion = ""
EndIf
If NOT $s_typeVersion = "" Then
MsgBox(0 + 64, "Information", $s_typeVersion)
EndIf
EndFunc


Simple et efficace. C'était une simple idée. Mais elle est fonctionnelle. C'est le principal.

Mais que contiennent les autres fichiers ?
Le fichier INI :
[UTILISATEURS]
USER1=Y
USER2=Y
# on continue les utilisateurs au fur et à mesure, 
# seul le login compte. La valeur N ne fera aucun effet sur la fonction


Le fichier résultats comportera les valeurs suivantes :
USER1 (espace blanc, tabulation...) CoteDonnées (ici Médiocre, bonne, excellente...)
USER2 Bonne
USER3 Excellente


Les résultats du fichier texte sont utilisables dans un tableur, une base de données, etc.
Pour lancer l'enquête, il faut placer simplement un appel dans le NETLOGON pourquoi pas...

Qu'en pensez-vous ?
October 2008
MTWTFSS
September 2008November 2008
12345
6789101112
13141516171819
20212223242526
2728293031