none
セットアップのプロジェクトの[起動条件]-[Condition]プロパティについて RRS feed

  • 質問

  • お世話になります。 環境は、VS2005です。

    件名の件ですが、Conditionプロパティの設定の仕方がいろいろと調べてみたのですがわかりません。



    ここに、比較演算子(=,<,>)を使った条件をいれることはできるのでしょうか?

    (Or が、 | であることはわかったのですが…)





    2007年10月26日 4:46

回答

  • レジストリ検索で値を取得するとちょっと違う状況になります。

    レジストリ検索で値を取得した場合、RegLocator Table のリファレンスにも記載がありますが、

    文字列なら、そのまま、REG_DWORDなら、#数字、REG_EXPAND_SZなら、#%文字列、REG_BINARY なら #x バイナリを16進数文字列化したデータの羅列

    という形で取得します。

     

    そのため、数値データで、2かどうかを検査したいという場合は、

    REGISTRYVALUE1 = "#2"

    という形で比較する必要があります。

     

    レジストリは扱いが非常に特殊なので、もしいろいろとやるのであれば、

    RegLocator Table, Registry Table のドキュメントを読んでおくことをおお勧めします。

     

    値がどうなってるかわからねーという場合は、

    メッセージ部分に、[REGISTRYVALUE1]([]を含む)と記載すると、値を表示してくれますよ。

    #往年のprintf デバッグと同じテクニックですがw

     

    2007年10月26日 7:15

すべての返信

  • MSDNライブラリの

    配置の条件

    http://msdn2.microsoft.com/ja-jp/library/cz6k1z02(VS.80).aspx

    ページから行けるリンク先の(このリンク先少しおかしいようですが。。。)

    Conditional Statement Syntax

    http://msdn2.microsoft.com/ja-jp/library/aa368012(en-us).aspx

    を見る限り使えるようですね。

     

     

    2007年10月26日 5:12
  • 一部抜粋版ですが、日本語でしるしたものが

    http://blogs.wankuma.com/tocchann/articles/22913.aspx

     

    にあります。

     

    ただし、翻訳元の情報自体がかなり古いものなので、その点はご了承いただきたいと思います。

    ちなみに、比較演算子は

     

    一致 が "="、不一致が "<>" と VB の演算子とほとんど同じです(ショートサーキットについては不明)。

    他にもちょっと変わった演算子などもありますので、細かいところはMSDNの英語記事およびおいらの日本語訳のページをお読みください。

     

    論理演算は、AND, OR, NOT はありますが XOR はありません。

    また、演算式の最適化などは行われないので、情報になればなるほど演算時間がかかります。

    #とはいえ、計測できるほど長い時間がかかるわけではありませんがw

     

    2007年10月26日 5:35
  • 例えば、

    レジストリ検索で、[Property]を REGISTRYVALUE1 にした際に
    その値が、2 であるかを条件にする場合は、

    起動条件の[Condition]に、

    REGISTRYVALUE1 = 2

    と記述すればいいのでしょうか?
    2007年10月26日 6:33
  • レジストリ検索で値を取得するとちょっと違う状況になります。

    レジストリ検索で値を取得した場合、RegLocator Table のリファレンスにも記載がありますが、

    文字列なら、そのまま、REG_DWORDなら、#数字、REG_EXPAND_SZなら、#%文字列、REG_BINARY なら #x バイナリを16進数文字列化したデータの羅列

    という形で取得します。

     

    そのため、数値データで、2かどうかを検査したいという場合は、

    REGISTRYVALUE1 = "#2"

    という形で比較する必要があります。

     

    レジストリは扱いが非常に特殊なので、もしいろいろとやるのであれば、

    RegLocator Table, Registry Table のドキュメントを読んでおくことをおお勧めします。

     

    値がどうなってるかわからねーという場合は、

    メッセージ部分に、[REGISTRYVALUE1]([]を含む)と記載すると、値を表示してくれますよ。

    #往年のprintf デバッグと同じテクニックですがw

     

    2007年10月26日 7:15
  • >と記述すればいいのでしょうか?

    ある程度見当がついていらっしゃるのなら、掲示板で質問する前にヘルプを見るなり、キーワードで検索するなりご自身で確かめられたほうが早くないでしょうか。

     

    方法 : Microsoft Data Access Components の起動条件を追加する

    http://msdn2.microsoft.com/ja-jp/library/1f5cas7b(VS.80).aspx

    にあるサンプルはご参考になりませんか。

    2007年10月26日 7:16
  • >ヘルプを見るなり

    VSセットアップに限って言えば、ヘルプ見て解決できるとは到底思えませんが...w

     

    ま、質問する前に実際に試してみてほしいというのはありますが。

    #起動条件なのでインストールまではせずとも結果は判定できますからね。

     

    一応デバッグテクニックも提示してるし(おいらも、実際にそうやってデバッグしてたりするわけで...w)、今後はうまいこと活用していただければと思いますけどねw

     

    2007年10月26日 9:07