C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 139 を表示中)
■81463 / )  Re[3]: クリックワンスの引数について
□投稿者/ 魔界の仮面弁士 (912回)-(2016/09/26(Mon) 17:16:59)
No81462 (夜叉丸 さん) に返信
> ショートカットのタブがないのでリンク先が設定されていません。
インストール済みの既存のショートカットファイルは操作しません。
それとは別に、新たにショートカットファイルを用意することになります。


> ちなみにこのページはすでに確認していますが、
> そもそも、URLパラメータ、XMLなど
そのページに、XML に関する解説は無かったような…?


この手法は、ClickOnce の配置先の URL が
 http://yourserver/Yashamaru/Yashamaru.application
だとしたら、ショートカットファイルのターゲットを
 http://yourserver/Yashamaru/Yashamaru.application?SampleParameter
のように指定して呼び出すための方法です。

ClickOnce アプリケーションが Web サイトに配置されていない場合は、
起動パラメーターを利用できません。なお、配置する Web サイトは
インターネットでもイントラネットでもローカルのサーバーでも構いません。


Web サイトに配置できないアプリケーションの場合は、
ClickOnce を用いず、XCOPY 配置や Windows Installer 等での
配置を行って下さい。


URL 配置という条件を満たせる場合、起動パラメーターを利用するために
発行処理の段階で、さらに以下の 2 点を満たす必要があります。

(1) 発行場所の「インストールフォルダーの URL」に、
  実在する URL を指定する事(空欄や UNC 指定は NG)

(2) 発行段階で以下の設定を施しておくこと


Visual Studio 2005 / 2008 SPなし の場合
 [発行]タブの[オプション]で、下記のチェックボックスを設定:
  オフ:URL からアプリケーションをアクティブにするのを禁止する
  オン:URL パラメータをアプリケーションに渡すことを許可する

Visual Studio 2008 SP1 / 2010 / 2012 の場合
 [発行]タブの[オプション]の[マニフェスト]で:
  オフ:URL からアプリケーションが起動されるのを禁止する
  オン:URL パラメーターをアプリケーションに渡すことを許可する

Visual Studio 2013 の場合
 未確認

Visual Studio 2015 の場合
 [公開]タブの[オプション]の[マニフェスト]で:
  オフ:URL からアプリケーションが起動されるのを禁止する
  オン:URL パラメーターをアプリケーションに渡すことを許可する

MageUI.exe の場合
 配置マニフェスト(.manifest)の「配置オプション」で:
  オン:URL パラメータをアプリケーションに渡すことを許可する

Mage.exe の場合
 配置マニフェストでdeployment要素のtrustURLParameters属性をtrueにする



> ショートカットにどうやって設定するのか理解できませんでした。

先の説明では、メールや Web ページからリンク呼び出しする場合が
想定されていますが、URL 指定であれば呼び出し方は問いません。

「URL へのショートカットファイル」からの起動でも渡せますし、
[Win]+[R] キーの『ファイル名を指定して実行』からでも呼び出せます。


そしてパラメーター付き URL の指定により、ローカルに
インストール済みの(あるいは Web からの直接実行の)
ClickOnce アプリケーションにパラメータが渡されます。

取得方法は先のページに書かれていますが、VB ならこんな感じ。

'Visual Basic
Imports System.Deployment.Application
Module Module1
 Sub Main()
  If ApplicationDeployment.IsNetworkDeployed Then
   Dim url As Uri = ApplicationDeployment.CurrentDeployment.ActivationUri
   If url Is Nothing Then
    MsgBox("パラメータ無し")
   Else
    Dim request As New Uri(url.AbsoluteUri)
    Dim param As String = request.Query
    MsgBox("[" & param & "]")
   End If
  Else
   MsgBox("ClickOnceとして起動されていない")
  End If
 End Sub
End Module
返信 編集キー/


管理者用

- Child Tree -