ClickOnce展開を使用するWPFアプリケーションがあります。起動時にいくつかのクエリパラメータがあり、それはApplicationDeployment.CurrentDeployment.ActivationUri
になります。このメソッドはうまくいきましたが、今ではアプリケーションが単一インスタンスです。私たちはWindowsFormsApplicationBase
をMicrosoft.VisualBasic
dllから実装することによって "単一インスタンス"を処理します。現在実行中のアプリケーションインスタンスでClickOnceクエリパラメータを取得
アプリの新しいインスタンスが起動されたら、クエリパラメータを取得し、既に実行中のアプリケーションでそれらを処理する必要があります。私の問題は、一度クリックしてアプリを起動するとクエリパラメータを取得できないということです。
私はこのように、WindowsFormsApplicationBase
クラスのOnStartupNextInstance
をオーバーライドすることによって、パラメータを取得しようとしている:ClickOnceのを使って起動する場合
protected override void OnStartupNextInstance(StartupNextInstanceEventArgs eventArgs)
{
var queryString = eventArgs.CommandLine;
//handle queryStringParams
}
eventArgs.CommandLine
は0の要素を持っていますが、私は起動したときには、要素を持っていますこのようなコマンドラインから私のアプリ、:私はApplicationDeployment.CurrentDeployment.ActivationUri
を介してそれらを取得しようとする場合
myApp.exe "param1=someValue¶m2=someOtherValue"
また、それは私に、現在のRのparamsを与えますアプリケーションを作る(明らかに)。
AppDomainを試しましたか?CurrentDomain.SetupInformation.ActivationArguments.ActivationData [0]? – mm8
@ mm8残念ながら 'ApplicationDeployment.CurrentDeployment.ActivationUri'と同じです - 現在実行中のインスタンスのデータ – Alex
もちろん...現在実行中のインスタンスは、コマンドライン引数や他のインスタンスに関する何かを知っているはずですか? – mm8