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

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

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

Re[11]: アプリ情報


(過去ログ 35 を表示中)

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

■17376 / inTopicNo.1)  アプリ情報
  
□投稿者/ 岨心 (1回)-(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
引用返信 編集キー/
■17377 / inTopicNo.2)  Re[1]: アプリ情報
□投稿者/ 鶏唐揚 (48回)-(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からアプリをダウンロードするのも「取得」って言うし。
ソースをトレースしたり、リンク先を見たりして初めて
「インストールされているアプリの一覧取得」をやりたい、ということがわかりました。

このように、情報を端折ると回答者は質問者の意図を探る時点で労力を
使い果たしてしまう恐れがあります。
これは回答者の回答意欲を"かなり"削ぎますので注意してください。
引用返信 編集キー/
■17380 / inTopicNo.3)  Re[2]: アプリ情報
□投稿者/ 岨心 (2回)-(2008/04/23(Wed) 11:38:09)
No17377 (鶏唐揚 さん) に返信

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

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

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

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

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

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

この場合、レジストリを扱う処理で、なおかつBaseKeyとかSubKeyという名前から、
その変数はレジストリのキー名に使用されていることが予測できます。
さらに & 演算子で結合していることから、String型が導き出されます。

引用返信 編集キー/
■17387 / inTopicNo.5)  Re[1]: アプリ情報
□投稿者/ やまだ (8回)-(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 で動かそうとしていませんか?
それだと違う言語ですので、変数宣言以前の問題かと。

引用返信 編集キー/
■17394 / inTopicNo.6)  Re[2]: アプリ情報
□投稿者/ 岨心 (3回)-(2008/04/23(Wed) 13:24:20)

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


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

VB.NETとVBScriptを学習しましょう。
実力を伸ばすチャンスですよ。
引用返信 編集キー/
■17396 / inTopicNo.8)  Re[4]: アプリ情報
□投稿者/ ぽぴ王子 (362回)-(2008/04/23(Wed) 13:35:53)
ぽぴ王子 さんの Web サイト
やまださんの意見に一票。

> WScript.Echo strValue

って書かれてますし。

No17380 (岨心 さん) に返信

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

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

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

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


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

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

# っと書いてるうちにスレがすすんでいる罠 orz
引用返信 編集キー/
■17404 / inTopicNo.9)  Re[5]: アプリ情報
□投稿者/ 渋木宏明(ひどり) (712回)-(2008/04/23(Wed) 14:42:41)
渋木宏明(ひどり) さんの Web サイト
> VB2005 だと Registry クラスというのがありますので、それを使って同じことを
> やるようなコードを書いた方が早そうです。

あまり推奨されません。

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

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

# Windows Installer API ってどんなんだっけ、と検索したらひどりさんのblogがひっかかった
# のはここだけの秘密 :-)
引用返信 編集キー/
■17417 / inTopicNo.11)  Re[7]: アプリ情報
□投稿者/ 岨心 (4回)-(2008/04/23(Wed) 18:11:29)
みなさんありがとうございました。

上記のコードをVB.netに変換するのは大変でしょうか?
引用返信 編集キー/
■17418 / inTopicNo.12)  Re[8]: アプリ情報
□投稿者/ ちゃっぴ (102回)-(2008/04/23(Wed) 18:26:44)
ちゃっぴ さんの Web サイト
> ローカルなら Windows Installer API を、リモートなら WMI を用いるのが本来と思います。

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

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

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

基礎を抑えていれば簡単。でなければ大変でしょう。
なんでもそうですが。
引用返信 編集キー/
■17419 / inTopicNo.13)  Re[8]: アプリ情報
□投稿者/ やまだ (9回)-(2008/04/23(Wed) 19:31:54)
No17417 (岨心 さん) に返信
> 上記のコードをVB.netに変換するのは大変でしょうか?

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

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

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

もしくは。
プログラムを作りたいわけじゃない、実行結果が欲しいだけなんだ
という場合だとすると、VBScript のまま動かすのではだめなんですか?

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

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

まずはそのスクリプトが何をしているのか詳細に把握する事に勤めればよいと思います。
こういった移植作業では、詳細に対象を知らなくてはなりません。
そして、変換先言語について学べばおのずと道は開けます。
引用返信 編集キー/
■17440 / inTopicNo.16)  Re[11]: アプリ情報
□投稿者/ 岨心 (6回)-(2008/04/24(Thu) 09:51:00)
ありがとうございまいた。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -