Je viens de découvrir un langage de script impressionnant et je pense que ça peut en intéresser plus d’un : http://www.autoitscript.com/.
Il s’agit d’un environnement complet avec un interpreteur, un compilateur (qui fait des exécutables autonome sans besoin de dll externe), et un editeur (SciTE modifié) basé autour d’un langage qui ressemble très fort à du VB.
Cette envionnement n’est pas à la hauteur d’un Java ou d’un .NET mais dépasse largement VBScript sur de noubreux points.
L’aide est impécable, très bien organisée, chaque fonction est extrément bien détaillée avec un exemple concret.
Les trucs sympa que l’on peut faire:
- Des interfaces graphiques (assez simple mais ca a le mérite d’être présent)
- Gestion des fichiers, disques
- Gestion du son (pas testé)
- Gestion des évènements clavier et souris (on peut simuler des clics)
- Gestion des Process
- Gestion des fenêtres
et des nouveautés sur la beta très intéressantes :
- Gestion Obj/COM
- Gestion du réseau
J’en oublie surement, à vous de découvrir le reste.
Voici un exemple concret que j’ai fait hier, un script qui importe proprement (sans convertion alacon©) un fichier CSV dans Excel :
[codebox]
#cs
Import CSV File
Developped by Dreux Loic
Version 1.0
#ce
; Ouverture de l’objet Com Excel
$Excel = ObjCreate (“Excel.Application”)
if @error then
Msgbox (0x10,“Importation de CSV”,“Microsoft Excel n’est pas installé, veuillez l’installer avant d’exécuter ce script”)
exit
endif
; Affichage de la boite de dialogue
$var = FileOpenDialog(“Importer un CSV dans Excel”, @MyDocumentsDir, “Fichier CSV (.csv;.txt)”, 2 )
; Si aucun fichier n’a été sélectionné
If @error Then
exit
EndIf
; On configure excel
$Excel.DisplayAlerts = False
$Excel.ScreenUpdating = False
$Excel.Visible = 1
; Ouverture des fichiers en entrée et en sortie
$Workbook = $Excel.workbooks.add ; Add a new workbook
$File = FileOpen($var, 0)
; On vérifie que le fichier est correct
If $File = -1 Then
MsgBox(0, “Erreur”, “Impossible de lire le fichier”)
Exit
EndIf
; On lit le fichier en entrée
$i = 1
$Limit = 1
While 1
$Line = FileReadLine($File)
If @error = -1 Then ExitLoop
$vResult = StringSplit($Line, “;”)
if UBound($vResult) > $Limit then $Limit = UBound($vResult)
$Workbook.ActiveSheet.Cells($i,1).Value = $Line
$i += 1
Wend
MettreEnForme($Workbook, $i,$Limit)
; Fermeture du fichier
FileClose($File)
$Excel.ScreenUpdating = True
Exit
#cs
Function MiseEnForme($Workbook as Workbook, $NombreLignes as Long, $NombreColonnes as Long)
#ce
Func MettreEnForme($Workbook, $NombreLignes, $NombreColonnes)
dim $tableau[2][$NombreColonnes]
for $i = 0 to $NombreColonnes - 1
$tableau[0][$i] = $i + 1
$tableau[1][$i] = 2
next
$Workbook.ActiveSheet.Range("A1:A" & $NombreLignes).TextToColumns($Workbook.ActiveSheet.Range("A1"),1,1,false,false,true,false,false,false,"",$tableau)
EndFunc
[/codebox]