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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.17376 の関連記事表示

<< 0 >>
■17376  アプリ情報
□投稿者/ 岨心 -(2008/04/23(Wed) 11:10:52)

    分類:[VB.NET/VB2005] 

    VB2005でアプリケーションを取得するPGを作成しています。

    http://www.microsoft.com/japan/technet/scriptcenter/resources/wmifaq.mspx#ECPAC
    で以下のコードを発見したのですがエラーが出てしまいます。
    strSubKey等の宣言はどうしたらよいのでしょうか?

    strHost = "."
    Const HKLM = &H80000002
    Set objReg = GetObject("winmgmts://" & strHost & _
    "/root/default:StdRegProv")
    Const strBaseKey = _
    "Software\Microsoft\Windows\CurrentVersion\Uninstall\"
    objReg.EnumKey HKLM, strBaseKey, arrSubKeys

    For Each strSubKey In arrSubKeys
    intRet = objReg.GetStringValue(HKLM, strBaseKey & strSubKey, _
    "DisplayName", strValue)
    If intRet <> 0 Then
    intRet = objReg.GetStringValue(HKLM, strBaseKey & strSubKey, _
    "QuietDisplayName", strValue)
    End If
    If (strValue <> "") and (intRet = 0) Then
    WScript.Echo strValue
    End If
    Next
親記事 /過去ログ35より / 関連記事表示
削除チェック/

■17377  Re[1]: アプリ情報
□投稿者/ 鶏唐揚 -(2008/04/23(Wed) 11:24:43)
    2008/04/23(Wed) 11:33:10 編集(投稿者)
    2008/04/23(Wed) 11:30:28 編集(投稿者)

    No17376 (岨心 さん) に返信
    > で以下のコードを発見したのですがエラーが出てしまいます。
    構文エラーですか
    それとも実行時エラーですか。
    (たぶん構文エラーだろうけど)
    あとどういうエラーメッセージですか。

    > strSubKey等の宣言はどうしたらよいのでしょうか?
    どうしたらといわれましても。
    宣言してください としか言いようが…
    (もしかして変数の宣言の仕方がわからない?)


    >VB2005でアプリケーションを取得するPGを作成しています
    細かいこと言うようですが、「アプリケーションを取得するPG」って
    最初見たときになんじゃらほいと思いました。

    httpからアプリをダウンロードするのも「取得」って言うし。
    ソースをトレースしたり、リンク先を見たりして初めて
    「インストールされているアプリの一覧取得」をやりたい、ということがわかりました。

    このように、情報を端折ると回答者は質問者の意図を探る時点で労力を
    使い果たしてしまう恐れがあります。
    これは回答者の回答意欲を"かなり"削ぎますので注意してください。
記事No.17376 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17380  Re[2]: アプリ情報
□投稿者/ 岨心 -(2008/04/23(Wed) 11:38:09)
    No17377 (鶏唐揚 さん) に返信

    > 構文エラーですか
    > それとも実行時エラーですか。
    構文エラーです。
    >

    > どうしたらといわれましても。
    > 宣言してください としか言いようが…
    > (もしかして変数の宣言の仕方がわからない?)
    変数の型をどうしたらよいか分かりません。

    >
    >
    > >VB2005でアプリケーションを取得するPGを作成しています
    > 細かいこと言うようですが、「アプリケーションを取得するPG」って
    > 最初見たときになんじゃらほいと思いました。
    >
    > httpからアプリをダウンロードするのも「取得」って言うし。
    > ソースをトレースしたり、リンク先を見たりして初めて
    > 「インストールされているアプリの一覧取得」をやりたい、ということがわかりました。
    >
    > このように、情報を端折ると回答者は質問者の意図を探る時点で労力を
    > 使い果たしてしまう恐れがあります。
    > これは回答者の回答意欲を"かなり"削ぎますので注意してください。

    申し訳ありませんでした。
    これから気をつけます。
記事No.17376 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17383  Re[3]: アプリ情報
□投稿者/ 鶏唐揚 -(2008/04/23(Wed) 11:57:10)
    No17380 (岨心 さん) に返信
    >>どうしたらといわれましても。
    >>宣言してください としか言いようが…
    >>(もしかして変数の宣言の仕方がわからない?)
    > 変数の型をどうしたらよいか分かりません。
    本当は自分で答えを見つけ出してほしいけど、(多分)最初なので答えも兼ねて以下。

    このソースでは変数名の頭にstrと付いていますよね。
    このことから、容易にString型ということが察せます。

    ただ、変数名に型名を入れることを良くないとする習慣があるので
    多くは変数名に型名は含まれません。その場合どうするかですがソースコードから探ります。

    この場合、レジストリを扱う処理で、なおかつBaseKeyとかSubKeyという名前から、
    その変数はレジストリのキー名に使用されていることが予測できます。
    さらに & 演算子で結合していることから、String型が導き出されます。
記事No.17376 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17387  Re[1]: アプリ情報
□投稿者/ やまだ -(2008/04/23(Wed) 12:10:24)
    ひとつ基本的な質問なのですが。

    No17376 (岨心 さん) に返信
    > VB2005でアプリケーションを取得するPGを作成しています。
    >
    > http://www.microsoft.com/japan/technet/scriptcenter/resources/wmifaq.mspx#ECPAC
    > で以下のコードを発見したのですがエラーが出てしまいます。
    > strSubKey等の宣言はどうしたらよいのでしょうか?

    スクリプトセンターから元コードを入手されてますよね?
    VBScript のコードを VB.NET で動かそうとしていませんか?
    それだと違う言語ですので、変数宣言以前の問題かと。
記事No.17376 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17394  Re[2]: アプリ情報
□投稿者/ 岨心 -(2008/04/23(Wed) 13:24:20)

    > スクリプトセンターから元コードを入手されてますよね?
    > VBScript のコードを VB.NET で動かそうとしていませんか?
    > それだと違う言語ですので、変数宣言以前の問題かと。


    まさにそのとおりでした・・。
    VB.netで使うならどうすればよいでしょうか?
記事No.17376 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17395  Re[3]: アプリ情報
□投稿者/ ネタ好き -(2008/04/23(Wed) 13:31:06)
    No17394 (岨心 さん) に返信
    >
    >>スクリプトセンターから元コードを入手されてますよね?
    >>VBScript のコードを VB.NET で動かそうとしていませんか?
    >>それだと違う言語ですので、変数宣言以前の問題かと。
    >
    >
    > まさにそのとおりでした・・。
    > VB.netで使うならどうすればよいでしょうか?

    VB.NETとVBScriptを学習しましょう。
    実力を伸ばすチャンスですよ。
記事No.17376 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17396  Re[4]: アプリ情報
□投稿者/ ぽぴ王子 -(2008/04/23(Wed) 13:35:53)
>
    やまださんの意見に一票。

    > WScript.Echo strValue

    って書かれてますし。

    No17380 (岨心 さん) に返信

    >>>VB2005でアプリケーションを取得するPGを作成しています
    >>細かいこと言うようですが、「アプリケーションを取得するPG」って
    >>最初見たときになんじゃらほいと思いました。
    >>
    >>httpからアプリをダウンロードするのも「取得」って言うし。
    >>ソースをトレースしたり、リンク先を見たりして初めて
    >>「インストールされているアプリの一覧取得」をやりたい、ということがわかりました。
    >>
    >>このように、情報を端折ると回答者は質問者の意図を探る時点で労力を
    >>使い果たしてしまう恐れがあります。
    >>これは回答者の回答意欲を"かなり"削ぎますので注意してください。
    >
    > 申し訳ありませんでした。
    > これから気をつけます。

    「申し訳ありませんでした。」はいいんだけど、やりたいことは「インストール
    されているアプリの一覧取得」でいいんでしょうか。
    反対意見がないみたいなので、それでいいのだと思いますけど。

    それに答えてもらわないと
    >>このように、情報を端折ると回答者は質問者の意図を探る時点で労力を
    >>使い果たしてしまう恐れがあります。
    >>これは回答者の回答意欲を"かなり"削ぎますので注意してください。
    これ、またやってることになりますよね。

    気をつけますと言いながら気をつけてないじゃないの!とか言われそうです。
    僕は言いませんが。


    やまださんが書かれているように、たぶん VBScript のコードだと思うのですが
    コードの中身を理解して使われてますか?
    Google で調べる→なんかよさげなコード発見→コピペ
    では技術的にも上達しません。今回のようなトラブルもありますし。

    VB2005 だと Registry クラスというのがありますので、それを使って同じことを
    やるようなコードを書いた方が早そうです。
    いい機会ですし、VBS→VB の移植?にもチャレンジしてみてください。

    # っと書いてるうちにスレがすすんでいる罠 orz
記事No.17376 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17404  Re[5]: アプリ情報
□投稿者/ 渋木宏明(ひどり) -(2008/04/23(Wed) 14:42:41)
>
    > VB2005 だと Registry クラスというのがありますので、それを使って同じことを
    > やるようなコードを書いた方が早そうです。

    あまり推奨されません。

    ローカルなら Windows Installer API を、リモートなら WMI を用いるのが本来と思います。
記事No.17376 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17406  Re[6]: アプリ情報
□投稿者/ ぽぴ王子 -(2008/04/23(Wed) 14:50:57)
>
    No17404 (渋木宏明(ひどり) さん) に返信
    >>VB2005 だと Registry クラスというのがありますので、それを使って同じことを
    >>やるようなコードを書いた方が早そうです。
    >
    > あまり推奨されません。
    >
    > ローカルなら Windows Installer API を、リモートなら WMI を用いるのが本来と思います。

    フォローありがとうございます。
    確かにそうですね。VBSのコードがレジストリを操作しているのでそのまま移植したら
    どうかと思いましたが、そこは本来の手段を用いた方がいいですね。

    # Windows Installer API ってどんなんだっけ、と検索したらひどりさんのblogがひっかかった
    # のはここだけの秘密 :-)
記事No.17376 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17417  Re[7]: アプリ情報
□投稿者/ 岨心 -(2008/04/23(Wed) 18:11:29)
    みなさんありがとうございました。

    上記のコードをVB.netに変換するのは大変でしょうか?
記事No.17376 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17418  Re[8]: アプリ情報
□投稿者/ ちゃっぴ -(2008/04/23(Wed) 18:26:44)
>
    > ローカルなら Windows Installer API を、リモートなら WMI を用いるのが本来と思います。

    この情報の場合には、Windows Installer で install されたものでないと API 経由で取得できませんからね〜。

    Windows Installer 以外の情報も必要な場合には registry から取得する必要があります。もっとも、ちゃんとやるとなると示された場所以外も調査する必要ありますが。なお、undocumented ながらこちらを行う COM API は存在します。

    > 上記のコードをVB.netに変換するのは大変でしょうか?

    基礎を抑えていれば簡単。でなければ大変でしょう。
    なんでもそうですが。
記事No.17376 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17419  Re[8]: アプリ情報
□投稿者/ やまだ -(2008/04/23(Wed) 19:31:54)
    No17417 (岨心 さん) に返信
    > 上記のコードをVB.netに変換するのは大変でしょうか?

    大変だと思います。
    理由:岨心さん自身に大変か簡単かの判断ができていないから。

    逆説的だけど、簡単だということをわかるまでは大変だと思うわけですよ。
    我々に簡単であっても岨心さんにとって大変なら意味がないわけだし。

    で、それを判断するためには、まずは自分でやってみていただくしかないかと。
    とっかかりとしては、ひどりさんやちゃっぴさんがヒントをくれていますし。

    もしくは。
    プログラムを作りたいわけじゃない、実行結果が欲しいだけなんだ
    という場合だとすると、VBScript のまま動かすのではだめなんですか?
記事No.17376 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17420  Re[9]: アプリ情報
□投稿者/ 岨心 -(2008/04/23(Wed) 20:47:49)
    > もしくは。
    > プログラムを作りたいわけじゃない、実行結果が欲しいだけなんだ
    > という場合だとすると、VBScript のまま動かすのではだめなんですか?

    他にも取得してることがあってそれらはVB.netで作成してるんです。
    アプリケーションだけが上手くいかなくて悩んでるんです。
記事No.17376 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17421  Re[10]: アプリ情報
□投稿者/ ネタ好き -(2008/04/23(Wed) 20:58:56)
    No17420 (岨心 さん) に返信
    >>もしくは。
    >>プログラムを作りたいわけじゃない、実行結果が欲しいだけなんだ
    >>という場合だとすると、VBScript のまま動かすのではだめなんですか?
    >
    > 他にも取得してることがあってそれらはVB.netで作成してるんです。
    > アプリケーションだけが上手くいかなくて悩んでるんです。

    まずはそのスクリプトが何をしているのか詳細に把握する事に勤めればよいと思います。
    こういった移植作業では、詳細に対象を知らなくてはなりません。
    そして、変換先言語について学べばおのずと道は開けます。
記事No.17376 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17440  Re[11]: アプリ情報
□投稿者/ 岨心 -(2008/04/24(Thu) 09:51:00)
    ありがとうございまいた。
記事No.17376 のレス / END /過去ログ35より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -