Bonjour,

Je souhaite utiliser un soft C++ pour ouvrir un .bat , jusque la pas de soucis.
Lors de l'appui sur un bouton, je lance un backgroundworker dans lequel j'utilise un process start info pour appeler mon fichier bat.

Le problème, c'est que quand j'appuie sur mon bouton, 2 fenêtres de la console s'ouvrent, comme si mon thread arrière plan appelait deux fois mon fichier bat...

A noter que si je lance directement le process start info depuis mon bouton, il s'ouvre normalement..

Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
using namespace System;
	using namespace System::ComponentModel;
	using namespace System::Collections;
	using namespace System::Windows::Forms;
	using namespace System::Data;
	using namespace System::Drawing;
	using namespace System::Threading;
 
 
	/// <summary>
	/// Description résumée de Form1
	/// </summary>
	public ref class Form1 : public System::Windows::Forms::Form
	{
	private:
 
	System::Windows::Forms::Button^  button1;
	System::ComponentModel::BackgroundWorker^  backgroundWorkerMACADRESS;
	System::Windows::Forms::RichTextBox^  richTextBox1;
	System::Diagnostics::Process^ process;
	System::Diagnostics::ProcessStartInfo^ pInfo;
 
	public:
		Form1(void)
		{
			InitializeComponent();
			InitializeBackgoundWorker();
			//
			//TODO: ajoutez ici le code du constructeur
			//
		}
	private:
 
   // Set up the BackgroundWorker object by attaching event handlers 
		void InitializeBackgoundWorker()
		{
			backgroundWorkerMACADRESS->DoWork += gcnew DoWorkEventHandler( this, &Form1::backgroundWorkerMACADRESS_DoWork );
			backgroundWorkerMACADRESS->RunWorkerCompleted += gcnew RunWorkerCompletedEventHandler( this, &Form1::backgroundWorkerMACADRESS_RunWorkerCompleted );
			backgroundWorkerMACADRESS->ProgressChanged += gcnew ProgressChangedEventHandler( this, &Form1::backgroundWorkerMACADRESS_ProgressChanged );
		}
 
	protected:
		/// <summary>
		/// Nettoyage des ressources utilisées.
		/// </summary>
		~Form1()
		{
			if (components)
			{
				delete components;
			}
		}
 
	protected: 
 
	private:
		/// <summary>
		/// Variable nécessaire au concepteur.
		/// </summary>
		System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
		/// <summary>
		/// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
		/// le contenu de cette méthode avec l'éditeur de code.
		/// </summary>
 
		void InitializeComponent(void)
		{
			this->button1 = (gcnew System::Windows::Forms::Button());
			this->backgroundWorkerMACADRESS = (gcnew System::ComponentModel::BackgroundWorker());
			this->richTextBox1 = (gcnew System::Windows::Forms::RichTextBox());
			this->SuspendLayout();
			// 
			// button1
			// 
			this->button1->Location = System::Drawing::Point(50, 59);
			this->button1->Name = L"button1";
			this->button1->Size = System::Drawing::Size(184, 46);
			this->button1->TabIndex = 0;
			this->button1->Text = L"Download MAC Adress";
			this->button1->UseVisualStyleBackColor = true;
			this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
			// 
			// backgroundWorkerMACADRESS
			// 
			this->backgroundWorkerMACADRESS->WorkerReportsProgress = true;
			this->backgroundWorkerMACADRESS->WorkerSupportsCancellation = true;
			this->backgroundWorkerMACADRESS->DoWork += gcnew System::ComponentModel::DoWorkEventHandler(this, &Form1::backgroundWorkerMACADRESS_DoWork);
 
			// 
			// richTextBox1
			// 
			this->richTextBox1->Location = System::Drawing::Point(317, 50);
			this->richTextBox1->Name = L"richTextBox1";
			this->richTextBox1->Size = System::Drawing::Size(307, 276);
			this->richTextBox1->TabIndex = 1;
			this->richTextBox1->Text = L"";
			// 
			// Form1
			// 
			this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
			this->ClientSize = System::Drawing::Size(646, 350);
			this->Controls->Add(this->richTextBox1);
			this->Controls->Add(this->button1);
			this->Name = L"Form1";
			this->Text = L"MainWindow";
			this->ResumeLayout(false);
 
 
		}
 
#pragma endregion
	private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
				 //Appel au backgroundworker pour le téléchargement de l'adresse mac
				 // Start the asynchronous operation.
					backgroundWorkerMACADRESS->RunWorkerAsync();
					richTextBox1->Text= "Lancement Batch";
 
 
 
			 }
	private: System::Void backgroundWorkerMACADRESS_DoWork(System::Object^  sender, System::ComponentModel::DoWorkEventArgs^  e) 
			 {
 
			 //Lancement du fichier .bat pour le téléchargement adresse mac
 
					pInfo = gcnew System::Diagnostics::ProcessStartInfo;
					pInfo->Verb = "open";//Action effectuée par le PSI
					pInfo->FileName = "C:\\SondeDosto\\BatchFiles\\TestBatch.bat"; // Fichier a lancer
					pInfo->UseShellExecute = true;
					process = System::Diagnostics::Process::Start( pInfo );	
			 }
Auriez vous des idées pour remédier à cela ?