我在Visual C++(使用命令行)中創建了一個應用程序。我已經在Visual C#中爲GUI做了一個GUI,以便用戶不必使用命令行並可以從GUI運行它。現在,我該如何去做一個安裝程序?在我的GUI我有下面的代碼調用我的應用程序並運行它:在C#中封裝GUI和在Visual C++中封裝應用程序
string cmdText;
cmdText = @"C++HeaderConversionToQFASTXML.exe " + " " + textBox1.Text + " " + textBox2.Text;
ProcessStartInfo info = new ProcessStartInfo("cmd.exe");
info.UseShellExecute = false;
info.RedirectStandardInput = true;
info.RedirectStandardOutput = true;
info.CreateNoWindow = true;
info.WorkingDirectory = @"C:\forAbishek\C++HeaderConversionToQFASTXML\Release\";
Process p = Process.Start(info);
p.StandardInput.WriteLine(cmdText);
在此我想工作目錄是在.exe文件(C++ HeaderConversionToQFASTXML.exe)將駐留在該目錄用戶機器。我如何確保GUI獲取此信息? .exe將安裝在用戶機器上。有人可以幫我嗎?謝謝。
我已經做了以下變化:
string cmdText;
cmdText = @"C++HeaderConversionToQFASTXML.exe " + " " + textBox1.Text + " " + textBox2.Text;
ProcessStartInfo info = new ProcessStartInfo("cmd.exe");
info.UseShellExecute = false;
info.RedirectStandardInput = true;
info.RedirectStandardOutput = true;
info.CreateNoWindow = true;
String path = System.Reflection.Assembly.GetExecutingAssembly().Location;
path = System.IO.Path.GetDirectoryName(path);
Directory.SetCurrentDirectory(path);
MessageBox.Show(path);
info.WorkingDirectory = path;
Process p = Process.Start(info);
p.StandardInput.WriteLine(cmdText);
它仍然是行不通的。我哪裏錯了?
謝謝。我想我寧願堅持讓CLI和GUI處於相同的位置。現在,我的問題是,在這種情況下如何指定工作目錄?正如上面代碼片段中的info.WorkingDirectory只在用戶選擇安裝GUI的位置後才知道。 – Retry
你需要比「不工作」更具體;我們不介意讀者。也就是說,看起來你讓創業公司比需要的更復雜。將您的CLI應用程序作爲processInfo對象中的可執行文件,以及ProcessInfo.Arguments中的命令行參數。 –
謝謝@Dan Neely。抱歉,模棱兩可。 – Retry