如何使用窗体应用程序在C ++中启动(.exe)文件?

时间:2012-02-06 18:06:18

标签: .net visual-c++ c++-cli base-class-library

,当用户点击Pre sets按钮时,它会启动另一个(.exe)文件,面包板按钮也是如此。

这是我一直在使用的代码

namespace RC_lab {
    using namespace System;
    using namespace System::ComponentMode1;         
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
    using namespace System::Diagnostics;

按钮就像

Process::Start("PreSets.exe");

但它给了我一个错误,这段代码适用于

Process::Start("notepad.exe");
Process::Start("chrome.exe");

它会正确启动它们,但在我的情况下,我得到:

  

Win32Exception is unhandeld系统找不到指定的文件。

我确保文件存在,甚至将文件夹放在C分区的程序文件中。

4 个答案:

答案 0 :(得分:3)

Process::Start("C:\\application_directory\\PreSets.exe");

您还必须指定文件的位置。

答案 1 :(得分:1)

只需添加

    在给定的默认命名空间中
  1. using namespace System::Diagnostics;

  2. 并将Process::Start("chrome.exe");添加到按钮中。

答案 2 :(得分:0)

您还可以使用OpenFileDialog启动exe文件或任何其他文件。 请参阅以下代码

     // Displays an OpenFileDialog so the user can select a Cursor.
  Stream^ myStream;
      OpenFileDialog^ openFileDialog1 = gcnew OpenFileDialog;


      openFileDialog1->FilterIndex = 2;
      openFileDialog1->RestoreDirectory = true;

      if ( openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK )
      {
         if ( (myStream = openFileDialog1->OpenFile()) != nullptr )
         {

            String^ strfilename = openFileDialog1->InitialDirectory + openFileDialog1->FileName;


              Process::Start(strfilename);


            myStream->Close();
         }
      }

答案 3 :(得分:0)

最好的方法是改变所有" \"到" /"。当我看到项目的警告时,我抓住了它。 例如c:Desktop \ ex.exe到C:/Desktop/ex.exe。