簡體   English   中英

從Windows窗體向運行控制台應用程序傳遞多個參數

[英]Passing multiple arguments to running console application from windows form

我有控制台應用程序,將其命名為X.exe 它與兩個參數一起工作,比如說'a'和'a.tmp',其中a 是我的輸入文件名a.tmp 是輸出filename 在控制台上,我通常運行如下應用程序: X a a.tmp, 但首先我必須在輸入文件'a'的位置出現,否則,如果我嘗試給出其絕對路徑,則應用程序將無法工作。 我已經創建了Windows窗體來運行這些控制台應用程序,但是正如我之前所說,必須在文件位置啟動該應用程序。 我嘗試使用過程對象,但應用程序無法正常工作。 我創建了兩個過程:

  1. 轉到文件位置
  2. 在文件位置執行應用程序

Question: can I excute these multiple commands in one go and avoid using IPC?

您可以使用ProcessStartInfo.WorkingDirectory

例如,來自MS Docs-ProcessStartInfo類

UseShellExecutetrue時, WorkingDirectory屬性的行為與UseShellExecutefalse時的行為不同。 UseShellExecutetrueWorkingDirectory屬性指定可執行文件的位置。 如果WorkingDirectory是一個空字符串,則當前目錄將被理解為包含可執行文件。

注-當UseShellExecutetrue ,啟動可執行文件的應用程序的工作目錄也是可執行文件的工作目錄。

如果UseShellExecutefalse ,則不使用WorkingDirectory屬性查找可執行文件。 相反,它的值適用於已啟動的流程,並且僅在新流程的上下文中具有含義。

例如

    public static void Main()
    {
        Process myProcess = new Process();

        try
        {                
            myProcess.StartInfo.UseShellExecute = true;

            // You can start any process, HelloWorld is a do-nothing example.
            myProcess.StartInfo.FileName = "X.exe"; /
            myProcess.WorkingDirectory = "C:\SomeDirectory That contains A and A.tmp"
            myProcess.Start();
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM