Je vais vous exposer un problème que j'ai rencontré avec ma console AutoIT et qui m'a posé des problèmes pendant une semaine.
Après, je sais que ce n'est pas la meilleur solution mais je pense qu'il aidera ceux et celles qui rencontreront ce problème.
Problème rencontré : Vous devez consulter un fichier Excel sur le réseau. Le chemin d'accès se trouve dans le fichier "Configuration.ini". Ce fichier comporte des caractères spéciales et de plus, le chemin réseau comporte des espaces. Votre service vous attribue dernièrement des droits AD avec votre compte informatique dans le cadre d'une fusion avec une autre équipe (vive les évolutions ^^). Votre console fonctionnait correctement en utilisant un bouton d'accès jusqu'à ces droits (Grrr). Pour utiliser votre fichier Excel (Ex : Valideurs.xlsx), vous devez utiliser votre compte ADM.
Solution appliquée :
- Ne pas changer le bouton dans AutoIT.
- Utiliser un fichier .bat en comprenant la variable chcp 28591 > nul.
Pourquoi cette variable ? Si vous ne l'utilisez pas, il ne trouvera pas correctement votre fichier Excel. Vous aurez à la place d'un "é" un "Ú" par exemple.
Nous utiliserons la commande RUNAS avec votre compte ADM pour lancer Excel et executer le fichier Valideurs.xlsx
- Renommer le chemin dans la fichier Conguration.ini qui lancera le fichier .bat au lieu du fichier Valideurs.xlsx
============ DEBUTS DES SCRIPTS ============
============ FICHIER main_gui3 : fichier de lancement de votre console ============
Code : Tout sélectionner
;----- Include GUI -----
#include <variables.au3>
#include <include\gui\outils_incidents.au3>
; Déclaration pour utiliser un bouton qui s’appellera "Valideurs". La commande ci-dessous sera lancée dans include\gui\outils_incidents.au3
Case $button_synoptique_valideurs
Call(_Open_Synoptique_valideurs())
Code : Tout sélectionner
...
Global $informations_SynoptiqueValideurs = Iniread("configuration.ini","INFORMATIONS","SynoptiqueValideurs","error")
...
Code : Tout sélectionner
; interface graphique où se trouve votre bouton qui marchait jusqu'à maintenant
Func _outils_incidents()
Global $tab_outils_incidents = GUICtrlCreateTabItem("Outils Incidents")
Global $button_synoptique_valideurs = GUICtrlCreateButton("Valideurs", 17, 64, 85, 25)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 16777215)
GUICtrlSetBkColor(-1, 0xCC9933)
EndFunc
Code : Tout sélectionner
REM C:\Program Files (x86)\Microsoft Office\Office14 = Suite Microsoft Office 2010 installé sur les postes du service
REM C'est dans ce fichier .BAT que votre responsable si le fichier Excel change (Ex: Valideurs.xlsx)
chcp 28591 > nul
Set Valideurs="\\Chemin réseau avec espaces\Fichier Excel avec espaces et caractères spéciaux.xlsx"
cd C:\Program Files (x86)\Microsoft Office\Office14
%windir%\system32\runas.exe /user:mon domaine\%username%_ADM /savecred "\"C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE\" \%Valideurs%\"
Code : Tout sélectionner
; Synoptique Valideurs
Func _Open_Synoptique_Valideurs()
; cette fonction va lancer un fichier .bat qui va lancer une commande RUNAS avec le compte _ADM et aller chercher le fichier Excel des valideurs – restrictions de droits
ShellExecute($informations_SynoptiqueValideurs)
EndFunc
…
Code : Tout sélectionner
[INFORMATIONS]
SynoptiqueValideurs="\\Chemin réseau où se trouve votre script .bat\Valideurs.BAT"
============ FIN DES SCRIPTS ============
--> Voilà cette solution fonctionne bien.
Alors pour certains ou certaines, j'ai essayé la commande suivante dans le fichier Function_outils_incidents.au3 mais je me suis trouvé bloqué au problème des caractères spéciaux du fichier Excel. Et bien sur, je ne dois pas modifier la fonction qui fait appel à $informations_SynoptiqueValideurs
Code : Tout sélectionner
; Synoptique Valideurs
Func _Open_Synoptique_Valideurs()
; cette fonction va lancer un fichier .bat qui va lancer une commande RUNAS avec le compte _ADM et aller chercher le fichier Excel des valideurs – restrictions de droits
; $LoginUserConsole = @USERNAME + "_ADM"
ShellExecute("cmd","/c chcp 28591 > nul runas /savecred /user:commun\" & $LoginUserConsole & " ""C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE " & $informations_SynoptiqueValideurs & "", @WindowsDir))
EndFunc
Cordialement.
Vireden.