|
|
|
|
Bonjour,
Étant actuellement élève en terminal STG GSI.
J'ai acquis quelque élément en programmation.
Mon problème est que je formate mon PC très souvent et j'aimerais savoir si quelqu'un pourrais m'aider a créer un programme ou même un petit fichier bat qui me permettrais d'installer tous mes programmes automatiquement.
j'ai commencer à créer ce bout de code :
@COLOR f1
@echo Nous sommes le %date%, il est %time%
@echo ---------------------------------------------
@echo.
:suite0
@Set /p check=Installer Avast Antivirus Edition Familiale [O/N], [S] pour Tous stopper?
@if /i "%check%"=="O" Goto :avast
@if /i "%check%"=="N" Goto :suite1
@if /i "%check%"=="S" Goto :stop
@if /i not "%check%"=="O""N""S" Goto :erreur0
:avast
@start /wait Installs\setupfre.exe
:suite1
@echo.
@Set /p check=Installer MagicISO [O/N], [S] pour Tous stopper?
@if /i "%check%"=="O" Goto :magic
@if /i "%check%"=="N" Goto :fin
@if /i "%check%"=="S" Goto :stop
@if /i not "%check%"=="O""N""S" Goto :erreur1
:magic
start /wait Installs\MagicISO\Setup\Setup_MagicISO.exe
GOTO :fin
:erreur0
@echo.
@echo.
@echo.
@echo Erreur de saisie, veuillez recommencer
@GOTO :suite0
:erreur1
@echo.
@echo.
@echo.
@echo Erreur de saisie, veuillez recommencer
@GOTO :suite1
:fin
@COLOR f6
@echo.
@echo.
@echo.
@echo.
@echo.
@echo.
@echo.
@echo.
@echo ********************************************************************************
@echo *** ***
@echo *** !!! Installations Terminer avec succes !!! ***
@echo *** ***
@echo ********************************************************************************
@echo.
@echo.
@echo ________________________________________________________________________________
@echo Appuyer sur une touche pour finir le programme correctement
@echo ________________________________________________________________________________
@pause >nul
GOTO :eof
:stop
@COLOR 0c
@echo.
@echo.
@echo.
@echo.
@echo.
@echo.
@echo.
@echo.
@echo ********************************************************************************
@echo *** ***
@echo *** !!! Installations Annuler !!! ***
@echo *** ***
@echo ********************************************************************************
@echo.
@echo.
@echo ________________________________________________________________________________
@echo Appuyer sur une touche pour finir le programme correctement
@echo ________________________________________________________________________________
@pause >nul
@GOTO :eof
___________________________________________________________________________________________
Bon voila le petit bout que j'ai tenté de faire mais ce que je voudrais c'est être plus simple ou créant une interface dans laquelle je pourrais directement sélectionner les programmes à installer et ce grâce à des cases à cocher.
Merci pour votre aide
Configuration: Windows Vista Safari 525.19
Tu fais un dossier avec tout les fichiers des installeurs.
|
C'est juste pour que tu m'aide à créer une relation. la j'ai créer une case à cocher ("checkbox") et un bouton validé. mais je n'arrive pas à créer le lien entre les deux composants.
|
protected virtual void OnButton1Clicked (object sender, System.EventArgs e)
{
if(checkbutton2.Active)
{
// On lance le programme d'installation correspondant
}
}
Ici je suppose que ton bouton s'appelle checkbutton2, je vérifie s'il est actif (coché), si c'est le cas, tu remplace le commentaire par un lancement d'un programme. Un exemple est d'utiliser System.Diagnostics dans les using, voici un petit exemple : using System.Diagnostics
Process myProc;
// Lancons le processus
myProc = Process.Start("filename");
// Le processus est lancé
// Arrêter le processus
myProc.CloseMainWindow();
Au final on a donc quelque chose comme ceci : protected virtual void OnButton1Clicked (object sender, System.EventArgs e)
{
if(checkbutton2.Active)
{
Process aProc;
aProc = Process.Start("ooffice -writer");
// ici moi je suis sous linux donc ça me lance OpenOffice
// en mode "traitement de texte"
}
} |
Lorsque tu édite ton programme en mode graphique (là où tu met les boutons, les checkbox et tout ça), tu double clique sur le bouton et tu vas arriver dans le code là où il y a l'event bouton, dedans tu met ceci :
if(checkbutton2.Active)
{
Process aProc;
aProc = Process.Start("ooffice -writer");
// ici moi je suis sous linux donc ça me lance OpenOffice
// en mode "traitement de texte"
}
N'oublie pas de mettre tout au début du document la directive : using System.Diagnostics; Sinon il va te dire que Process n'existe pas dans le contexte actuel. |
Voila ma maquette mais on va dire que pour l'instant c'est un test pour apprendre à utilisé le langage.
|
Pour l'instant j'ai ça :
|
Tu en fais ceci alors :
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if(checkbutton1.Active)
{
Process installation1;
installation1 = Process.Start("installeur.exe");
}
}
}
}
// Pour ceci il faut qeu "installeur.exe" soit // dans le même dossier que le .exe généré par // Visual C# Express, c'est à dire dans le dossier // du projet, puis dans bin puis debug, puis un peu // fouiller pour trouver un .exe Le fait que tu soit sous vista ne change pas grand chose ;) |
Bon voila mon programme, enfin un début :
|
Là il va te les lancer tous en même temps, si tu veux qu'il te les lances les un après les autres (le 2e lorsque le premier as fini, fait comme ceci :
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Diagnostics;
using System.Threading;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (checkBox1.Active)
{
Process installation_avast;
installation_avast = Process.Start("setupfre.exe");
while(!installation_avast.HasExited)
{
installation_avast.Refresh();
Thread.Sleep(2000);
}
installation_avast.Close();
}
if (checkBox2.Active)
{
Process installation_MagicISO;
installation_MagicISO = Process.Start("Setup_MagicISO.exe")
while(!installation_MagicISO.HasExited)
{
installation_MagicISO.Refresh();
Thread.Sleep(2000);
}
installation_MagicISO.Close();
}
}
}
}
N'oublie pas de rajouter le "using System.Threading;" pour pouvoir faire des Thread.Sleep(2000); |
Oua, c'est vraiment plus compliquer que je ne le pensait donc lorsque je fait un Threading, il attend la fin de l'installation mais admet-on avec ce code mais ou je met les installations afin de tester l'application.
|