[EX] Installation automatisée de packs de langue

Partagez vos scripts, et vos applications AutoIt.
Règles du forum
.
Répondre
Avatar du membre
GhostLine
Niveau 7
Niveau 7
Messages : 342
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

[EX] Installation automatisée de packs de langue

#1

Message par GhostLine »

Salut à tous ! Ci-joint mon dernier script, pour un client, mais je partage, vu comment j'ai ramé pour trouver les infos :)

Le but de ce programme est simple : il permet d'automatiser l'installation des MUI de Windows (packs de langue).
Il tape intégralement dans un fichier INI séparé, que l'on peut du coup faire évoluer au fil des besoins en rajoutant de nouvelles sections.

Puis un fichier de configuration ainsi que le batch à lancer pour faire l'installation silencieuse est généré : il n'y a plus qu'à le lancer et tout s'installe et se configure automatiquement (la langue installée devient la langue par défaut de Windows).

Les prérequis : avoir les packages MUI, ainsi que les fichiers attenants (MUISetup.exe, MUI.inf, MUIqfe.inf).

Pour mémoire, voilà comment l'arborescence est censée être :

Image

Uploaded with ImageShack.us

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

$liste_pays = IniReadSectionNames("c:\test.ini")
$muisetup = @WindowsDir&"\mui\muisetup.exe"
$data_liste = ""

;~ On collecte les pays présents dans le fichier INI pour remplir le menu déroulant
If @error Then 
    MsgBox(4096, "", "Error occurred, probably no INI file.")
Else
    For $i = 2 To $liste_pays[0]
        $data_liste = $data_liste &"|"& $liste_pays[$i]
    Next
EndIf


#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Language installation", 226, 98, 192, 124)
$Combo1 = GUICtrlCreateCombo("", 8, 32, 209, 25,BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1,$data_liste)
$Label1 = GUICtrlCreateLabel("Choose the Windows and Office language :", 8, 8, 210, 17)
$Button1 = GUICtrlCreateButton("Continue", 8, 64, 209, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    If $nMsg = $Button1 Then
        Switch GUICtrlRead($Combo1)
            Case GUICtrlRead($Combo1) <> ""
                _generation(GUICtrlRead($Combo1))
            Exit
        EndSwitch
    EndIf

    Switch $nMsg
        Case $GUI_EVENT_CLOSE
        Exit
    EndSwitch
WEnd

;~ ----------------------------------------------------------------------------------------------------------

Func _generation($langue_combo)

    $mui_path = @WindowsDir&"\mui\"

    $var = IniReadSection("C:\Test.ini", $langue_combo)
    If @error Then 
        MsgBox(4096, "", "Error occurred, probably no lines in the INI file for this language."& @CRLF &"Please install the packages manually.")
    Else
    For $i = 1 To $var[0][0]
        If $var[$i][0] = "code_langue" Then
            $langue = $var[$i][1]
        EndIf
        If $var[$i][0] = "code_office" Then
            $office = $var[$i][1]
        EndIf
        If $var[$i][0] = "code_region" Then
            $groupe = $var[$i][1]
        EndIf
    Next
    EndIf

; On génère le fichier de configuration

    FileOpen($mui_path&"regional.txt",1)
    FileWrite($mui_path&"regional.txt","[RegionalSettings]"& @CRLF &"LanguageGroup = " & $groupe& @CRLF &"UserLocale = 0000" & $langue& @CRLF &"SystemLocale = 0000"&$langue & @CRLF &"InputLocale = "&$langue&":0000"&$langue & @CRLF)
    FileWrite($mui_path&"regional.txt","MUILanguage = "&$langue& @CRLF &"UserLocale_DefaultUser = 0000"&$langue& @CRLF &"InputLocale_DefaultUser = "&$langue&":0000"&$langue& @CRLF &"MUILanguage_DefaultUser = 0000"&$langue)
    FileClose($mui_path&"regional.txt")

;~ Puis le batch d'installation

    FileOpen($mui_path&"langue.bat",1)
    FileWrite($mui_path&"langue.bat","muisetup.exe /i " &$langue& " /d /r /s"& @CRLF &"rundll32.exe shell32,Control_RunDLL intl.cpl,,/F:""c:\windows\mui\regional.txt""")
    FileClose($mui_path&"langue.bat")

EndFunc
Fichiers joints
test.ini
(1.32 Kio) Téléchargé 248 fois
Avatar du membre
SrBelial
Niveau 7
Niveau 7
Messages : 335
Enregistré le : jeu. 22 juil. 2010 11:29
Localisation : 81 et 31
Status : Hors ligne

Re: [EX] Installation automatisée de packs de langue

#2

Message par SrBelial »

merci pour ce partage de qualité ^___^
.-SrB-. The One
  • NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
  • OUI ! AutoIt est un langage à part entière !
  • Dans SciTE sélectionnez 1 mot puis F1
  • Don't want english doc ?? go to documentation française !! >>ICI<<
[/size]
Avatar du membre
GhostLine
Niveau 7
Niveau 7
Messages : 342
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

Re: [EX] Installation automatisée de packs de langue

#3

Message par GhostLine »

My pleasure ^_^
Répondre