Le « PersoMenu » permet de lancer n'importe quel exécutable à partir de l'éditeur grâce à une ligne de commande et des macros.

Dans le billet précédent, je parlais de WebDev 11 (35c) qui ne configurait pas le serveur Apache 2.2.3 automatiquement.
J'ai donc fait un programme en Wlangage permettant d'ajouter l'alias pour chaque site dans le fichier httpd.conf.
Puis dans WebDev j'ai créé un Perso menu :

La ligne de commande est la suivante :
"D:\Projet\ModifHttpd.conf\Exe\ModifHttpd_conf.exe" "C:\Program Files\Apache Software
Foundation\Apache2.2\conf\httpd.conf" "{$RepProjet}"
{$RepProjet} : c'est une macro disponible est cliquant sur le bouton « Macro ». Elle renvoie le chemin du répertoire du projet.
ModifHttpd_conf.exe : Mon programme WinDev permettant d'ajouter l'alias au fichier httpd.conf.
Astuce : Dans l'aide il n'est pas précisé comment créer une ligne de commande avec un chemin d'accès contenant des espaces. Le plus simple est de tester la ligne de commande dans « Demarrer...executer » de windows.
Code du programme WinDev « ModifHttpd_conf.exe » :
// Code de déclaration global du projet
LOCAL
gsRes est une chaîne
gnIdFic est un entier
gsCheminFic est une chaîne
gsALias est une chaîne
gsNomSite est une chaîne
gbRes est un booléen
// exemple de ligne de commande:
//"D:\Projet\ModifHttpd.conf\Exe\ModifHttpd_conf.exe" "C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf" "C:\WebDev 11\Exemples\Exemples complets\WW_Editeur_HTML"
gsCheminFic = LigneCommande(1) //C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf
gsALias = LigneCommande(2) //C:\WebDev 11\Exemples\Exemples complets\WW_Editeur_HTML
// Ligne de code pour test
SI EnModeTest() ALORS
gsCheminFic = "C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf"
gsALias = "C:\WebDev 11\Exemples\Exemples complets\WW_Editeur_HTML\"
FIN
SI gsCheminFic <> "" ALORS
// Ouverture du fichier httpd.conf
gnIdFic = fOuvre(gsCheminFic,foAjout)
SI gnIdFic <> -1 ALORS
SI gsALias <> "" ALORS
// On rajoute _WEB au chemin du site
SI Droite(gsALias,1) = "\" ALORS
gsALias = gsALias[[1 A (Taille(gsALias)-1)]]
FIN
gsNomSite = ExtraitChaîne(gsALias,1,"\",DepuisFin)
gsNomSite = "/"+Majuscule(gsNomSite)+"_WEB/"
// Change les \ en /
gsALias = Remplace(gsALias,"\","/")
// On construit le chemin complet
gsALias = gsALias+gsNomSite
// Construction de la chaîne à ajouter au fichier httpd.conf
gsRes = [
Alias %1 "%2"
Options None
AllowOverride None
Order allow,deny
Allow from all
]
gsRes = RC+ChaîneConstruit(gsRes,gsNomSite,gsALias)
// Écriture dans le fichier
gbRes = fEcritLigne(gnIdFic,gsRes)
SI PAS gbRes ALORS
Erreur()
FIN
fFerme(gnIdFic)
// Redemarrer le serveur.
sr est une chaîne = [
"%1" "%2"
]
sr = ChaîneConstruit(sr,"C:\Program Files\Apache Software Foundation\Apache2.2\bin\httpd.exe","-k restart")
LanceAppliAssociée(sr)
SINON
fFerme(gnIdFic)
gsRes = [
"%1"
]
gsRes = ChaîneConstruit(gsRes,gsCheminFic)
// que sous windows
LanceAppliAssociée(gsRes)
FIN
FIN
FIN