none
VS2008でインストーラー作成 RRS feed

  • 質問

  • VB2008でアプリケーションを作成し、インストーラーを作成しています。

    配付は、プログラム本体、設定ファイル(.ini)の2種類です。

    只、

    (1)スタート=>プログラム=>「アプリ名」に登録

    (2)スタート=>プログラム=>スタートアップ=>「アプリ名」に登録

    の2通りの登録が必要です。

    2者の違いは(1)は実行ファイルは引数なしで実行し、(2)は引数ありで実行します。

    セットアッププロジェクトでスタートアップフォルダに配置したEXEファイルのショートカットには、プロパティのArgumentsに引数「-now」を

    指定してインストーラーを作成し、ローカルで試験したのですが、スタートアップに登録されたショートカットには「-now」の引数は指定されず、

    プログラムメニューで登録されたEXEファイルのリンク情報が登録されているだけです。

    どこに設定誤りがあるのか、ご存知の方、ご指南をお願いいたします。


    furuyosi
    2010年4月28日 8:18

回答

  • セットアッププロジェクトで普通に作成したショートカットはアドバタイズショートカットという特殊なショートカットになっています。
    そのため、引数が付いていないように見えますが実行されるときには引数が渡されているはずです。

    気になるのでしたらそのショートカットをメモ帳等で開いてみるといいでしょう。
    指定した引数が読み取れますよ。

    2010年4月28日 10:52
  • スタートメニューはいかにある多くのショートカット(拡張子が.lnkのもの)は、基本的にすべてバイナリデータです。内部を参照する場合は、IShellLink というCOMインターフェースを経由して参照します。

     

    引き出せる情報からアドアタイズインストールであることも経験則的にわかるようには作られています。自分で類推するなどが必要になるため若干(というよりはかなりw)面倒ですが。

    MSDNライブラリにリファレンスがありますし、検索すれば実用サンプルも多数転がっているはずです。

     


    わんくま同盟,Microsoft MVP for Visual C++(Oct 2005-) http://blogs.wankuma.com/tocchann/
    • 回答としてマーク furuyosi 2010年5月11日 0:35
    2010年5月7日 13:42

すべての返信

  • セットアッププロジェクトで普通に作成したショートカットはアドバタイズショートカットという特殊なショートカットになっています。
    そのため、引数が付いていないように見えますが実行されるときには引数が渡されているはずです。

    気になるのでしたらそのショートカットをメモ帳等で開いてみるといいでしょう。
    指定した引数が読み取れますよ。

    2010年4月28日 10:52
  • 試しにスタートアップから起動したとき、MsgBoxを表示するようにしたら、確かに起動してました。

    パラメータは渡されていたようです。勉強不足ですみません。

    > 気になるのでしたらそのショートカットをメモ帳等で開いてみるといいでしょう。
    > 指定した引数が読み取れますよ。

    を確認使用と思い、ショートカットをメモ帳でひらくと、Binaryなんでしょうか、化け化けの文字列が表示され、

    確認できません。

    現象は解消したのですが、上記疑問が残ります。どうかご教授ください。


    furuyosi
    2010年5月6日 2:34
  • こんにちは、furuyosi さん。

    情報はバイナリみたいですね。
    Advertised Shortcuts  の引数ですが、API で取得する方法が紹介されているサイトがありました。試したわけではないのですが、何かのお役に立てましたら幸いです。

    http://www.geektieguy.com/2007/11/19/how-to-parse-special-lnk-files-aka-msi-shortcuts-aka-windows-installer-advertised-shortcuts-using-c/

    gekka さん、情報ありがとうございます。furuyosi さんもパラメータがわたっていることは確認いただいたようなので、勝手ながら、有効な情報として回答としてマークさせていただきますね。
    ほかにも、有効な情報をお持ちの方がいらっしゃいましたら、是非投稿をお願いいたします。

    2010年5月6日 8:57
  • スタートメニューはいかにある多くのショートカット(拡張子が.lnkのもの)は、基本的にすべてバイナリデータです。内部を参照する場合は、IShellLink というCOMインターフェースを経由して参照します。

     

    引き出せる情報からアドアタイズインストールであることも経験則的にわかるようには作られています。自分で類推するなどが必要になるため若干(というよりはかなりw)面倒ですが。

    MSDNライブラリにリファレンスがありますし、検索すれば実用サンプルも多数転がっているはずです。

     


    わんくま同盟,Microsoft MVP for Visual C++(Oct 2005-) http://blogs.wankuma.com/tocchann/
    • 回答としてマーク furuyosi 2010年5月11日 0:35
    2010年5月7日 13:42
  • 沢山の方から返答頂き有難うございます。

    .NETでクライアントアプリを開発して(これまで殆どWebアプリだった)いろいろわからないこと尽くめでしたが、

    沢山アドバイス頂き有難うございます。

    まずはMSDNリファレンスをもっと検索して勉強します。

     

    http://www.geektieguy.com/2007/11/19/how-to-parse-special-lnk-files-aka-msi-shortcuts-aka-windows-installer-advertised-shortcuts-using-c/

    は見ではみたのですが、ちょっと敷居が高いように感じました。勉強不足ですみません。

     



    furuyosi
    2010年5月11日 0:34