將兩個參數從一個WPF應用程序傳遞到另一個WPF應用程序時出現問題。 我發佈第二個WPF應用程序到我的桌面,我想用我的第一個WPF應用程序啓動它。將參數傳遞給另一個WPF應用程序不起作用
首先-計劃:
public MainWindow()
{
InitializeComponent();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = @"C:\Users\User\Desktop\Work.application";
startInfo.Arguments = "test 1234";
Process.Start(startInfo);
}
要獲得的參數在第二個節目我嘗試下面的代碼
1.Get參數在主窗口與Environment.GetCommandLineArgs()=>不起作用
在應用public MainWindowSecondProgram()
{
InitializeComponent();
string[] args = Environment.GetCommandLineArgs();
foreach (String element in args)
{
MessageBox.Show(element);
}
}
2.註冊參數通過使用啓動功能=>不起作用
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
foreach (string element in e.Args)
{
MessageBox.Show(element);
}
}
}
現在,如果我從我的Visual Studio項目文件夾中的Work.exe(不Work.application)複製到我的桌面和
@"C:\Users\User\Desktop\Work.application" to
@"C:\Users\User\Desktop\Work.exe"
更改路徑,然後再次運行我的第一個程序,它可以完美運行與 第一個功能和第二個功能。
那麼,爲什麼它與EXE一起工作,但與已發佈的應用程序沒有關係?
編輯: 我通過傳遞兩個參數來測試這兩個函數拋出調試器,它的工作原理,但不是通過將它傳遞給發佈的應用程序,只有EXE的作品。
[C#ProcessStartInfo參數]的可能重複(http://stackoverflow.com/questions/15454456/c-sharp-processstartinfo-arguments) – MethodMan
@MethodMan我做了同樣的事情,但沒有結果。認爲它是一個不同的問題。他正在談論傳遞給EXE,我正在談論傳遞給應用程序。 (不同?!)EXE適用於我,但不適用於應用程序。 – user3769192
你爲什麼認爲'應用程序'文件可以視爲正常的應用程序?對我來說,這只是一個***設置***文件。這只是爲了方便,是的,它是完全不專業的(甚至通過網絡現在發佈通常要求用戶下載一個完整的安裝文件爲'EXE'或'MSI' - 它看起來更專業,現在用戶足夠聰明,知道如何使用這些設置文件)。因爲它只是一個快速設置文件,所以在實際運行exe文件之前,運行它將首先運行安裝程序(準備exe文件)。你想要什麼是不可能的,***胡話***。 – Hopeless