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

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

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

Re[7]: クリックワンスの引数について


(過去ログ 139 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■81459 / inTopicNo.1)  クリックワンスの引数について
  
□投稿者/ 夜叉丸 (1回)-(2016/09/26(Mon) 14:50:53)

分類:[.NET 全般] 

プログラムに直接関係しないのですが

実行ファイルを実行するときに作ったショートカットの場合
リンク先の後ろに引数をつけることができますが、

クリックワンスの場合にはインストールでデスクトップに作られた
ショートカットではそのようなことができないのですが、
クリックワンスで引数をつけたい場合はどうすればよいのですか?
引用返信 編集キー/
■81461 / inTopicNo.2)  Re[1]: クリックワンスの引数について
□投稿者/ 魔界の仮面弁士 (911回)-(2016/09/26(Mon) 15:40:36)
No81459 (夜叉丸 さん) に返信
> ショートカットではそのようなことができないのですが、
> クリックワンスで引数をつけたい場合はどうすればよいのですか?

URL パラメーターを利用できます。
http://www.atmarkit.co.jp/fdotnet/dotnettips/514clickoncmdarg/clickoncmdarg.html
引用返信 編集キー/
■81462 / inTopicNo.3)  Re[2]: クリックワンスの引数について
□投稿者/ 夜叉丸 (2回)-(2016/09/26(Mon) 15:56:36)
No81461 (魔界の仮面弁士 さん) に返信
早速ありがとうございます。

ちなみにこのページはすでに確認していますが、
そもそも、URLパラメータ、XMLなど
ショートカットにどうやって設定するのか理解できませんでした。

ショートカットを利用しないやり方なのでしょうか?
どこで何をするのか全く理解できないうえに
URLパラメータの変更するとか書かれていても何のことやらでした。

ショートカットのタブがないのでリンク先が設定されていません。
このリンク先を表示するようにすればURLパラメータの変更ができるのでしょうか?

わかる人にはわかるのかもしれませんが
素人なのもので全く理解不能なので具体的に何をどうすればいいのか教えていただけませんか。
よろしくお願いします。

引用返信 編集キー/
■81463 / inTopicNo.4)  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
引用返信 編集キー/
■81473 / inTopicNo.5)  Re[4]: クリックワンスの引数について
□投稿者/ 夜叉丸 (3回)-(2016/09/27(Tue) 10:24:09)
No81463 (魔界の仮面弁士 さん) に返信

> そのページに、XML に関する解説は無かったような…?
URLパラメータの設定のところに以下のような例が表示されていたので
XMLかと思ったのですが違ったんですね。

<A href=”http:〜


> この手法は、ClickOnce の配置先の URL が
>  http://yourserver/Yashamaru/Yashamaru.application
> だとしたら、ショートカットファイルのターゲットを
>  http://yourserver/Yashamaru/Yashamaru.application?SampleParameter
> のように指定して呼び出すための方法です。
>
パラメータの取得できるようになりました。
ありがとうございます。

あと少しだけ質問があるのですが

クリックワンスで作成されたショートカットをメモ帳で開くと
http://.../soft01/soft01.application#soft01.application, Culture=neutral, PublicKeyToken=xxxx, processorArchitecture=xxx
のようにCulture, PublicKeyToken, processorArchitectureが設定されているのですが
これらは無視していいのでしょうか?
ショートカット作成時に項目の場所を設定するときに上記の文字を入れようとしたのですが
うまくいきませんでした。
入力できたのは#以降を削除してパラメータを追加した
[http://.../soft01/soft01.application?paramater] でした。



それと、ショートカットで作成したのですが、urlを入力すると
アイコンがIEになってしまい。アイコンの変更をしようとしたのですが
プロパティでショートカットタブがでません。
これは仕方がないのでしょうか?


引用返信 編集キー/
■81475 / inTopicNo.6)  Re[5]: クリックワンスの引数について
□投稿者/ PANG2 (152回)-(2016/09/27(Tue) 11:00:06)
> URL パラメーターを利用できます。
> http://www.atmarkit.co.jp/fdotnet/dotnettips/514clickoncmdarg/clickoncmdarg.html

ショートカットをいじるのではなく、URLパラメーターの値をファイルに保存するという話
が書いてあります。
引用返信 編集キー/
■81476 / inTopicNo.7)  Re[5]: クリックワンスの引数について
□投稿者/ 魔界の仮面弁士 (915回)-(2016/09/27(Tue) 11:27:15)
No81473 (夜叉丸 さん) に返信
>>そのページに、XML に関する解説は無かったような…?
> URLパラメータの設定のところに以下のような例が表示されていたので
> XMLかと思ったのですが違ったんですね。
>
> <A href=”http:〜

それはただの HTML ですね。

そういう URL から呼び出して下さい、という例示でしかないので、
今回はそれを URL ショートカットに置き換えれば OK です。


> クリックワンスで作成されたショートカットをメモ帳で開くと
> http://.../soft01/soft01.application#soft01.application, Culture=neutral, PublicKeyToken=xxxx, processorArchitecture=xxx
> のようにCulture, PublicKeyToken, processorArchitectureが設定されているのですが
> これらは無視していいのでしょうか?

.appref-ms ショートカットそのものは編集しないでください。

.url ショートカットで指定する場合は、
 http://.../soft01/soft01.application
とか
 http://.../soft01/soft01.application?parameter
だけで十分です。


どうしても appref-ms を使いたいのであれば、電卓(calc.exe)などへの
ショートカットである「.lnk ショートカット」に対して、ターゲットパスに
 "C:\……\soft01.appref-ms" parameter
のように指定するという非標準な手法があります。この方法で渡せる引数は1つだけです。

この呼び出し方は正式な手続きでは無いため、本来の方法である
 ApplicationDeployment.CurrentDeployment.ActivationUri
では受け取れません。この引数を受け取るには
 Dim param As String = If(AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData, New String() {}).FirstOrDefault()
を利用します。

このコードの場合、スタートメニューに登録された .appref-ms 単体で呼び出した場合は引数なし、
URL 起動の場合は "http://.../soft01/soft01.application?parameter" などの URL 全体、
上記ショートカットからでは、appref-ms に渡した引数部分が得られます。


> アイコンがIEになってしまい。アイコンの変更をしようとしたのですが
> プロパティでショートカットタブがでません。
「Web ドキュメント」タブの「アイコンの変更」を利用して下さい。


> これは仕方がないのでしょうか?
ショートカットの種類によって、プロパティ画面の仕様も異なります。

.pif とか .lnk とか .url とか .appref-ms とか
.mydocs とか .desklink とかその他諸々。
引用返信 編集キー/
■81479 / inTopicNo.8)  Re[6]: クリックワンスの引数について
□投稿者/ 夜叉丸 (4回)-(2016/09/27(Tue) 15:00:28)
2016/09/27(Tue) 15:07:20 編集(投稿者)

みなさんどうもありがとうございました。
引数パラメータは取得できるようになりましたが。

ちょっとした問題点があります。


@URL指定なので、IEが立ち上がっているのでしょうか?
一瞬だけフォームがちらついて見えます。

A最初に現れるべきフォームが表示されないときがあります。
クリック後起動して、タスクバーには表示されています。
ただ、最小化状態ではなく、ほかのプログラムを起動したときに
最大化されたり、マウスを移動したりすると表示されるような
変な動きをします。

特にAの方の問題点は改善したいです。


Aなんですが
マウスを移動したりすると表示されるようなではなくて
デスクトップ上でマウスを移動して、何もないところであれば
やはり表示はされません。他のアイコンの上にマウスカーソルが
のってアイコンの表示が変わった時に一緒に表示されるみたいです。
引用返信 編集キー/
■81549 / inTopicNo.9)  Re[7]: クリックワンスの引数について
□投稿者/ 夜叉丸 (5回)-(2016/10/07(Fri) 17:45:42)
このままずっと解決できそうにないので
解決済みで終了します。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -