• ベストアンサー

バイナリ内へのファイルの内包

.Netで開発したプログラムからVBScriptを実行したいと考えています。 しかしEXEファイルとVBScriptファイルを一緒に配置したくありません。このような場合、.Netバイナリ内にVBScriptファイルを内包することは可能でしょうか? 可能であればその方法を教えてください。 開発環境:Visual Studio 2003 使用言語:Visual Basic OS:Windows XPです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

スクリプト自体は プログラムリソースとして埋め込むことは可能ですよ プロジェクトに『アセンブリリソース』を追加して 文字列としてスクリプトの内容を登録します リソースマネージャオブジェクトを介してこの文字列を取得します dim objAsm as System.Reflection.Assembly dim rm as ResorceManager dim ss as String objAsm = Me.GetType.Assembly rm = new ResorceManager("EXEファイル名.リソースファイル名"、objAsm ) ' リソースに登録しな文字列の『name』属性を指示 ss = rm.GetString("myString") といった具合で取り出せます MSScript.OCX『Microsoft Script Control』を使えばファイルに落とすことなく実行も出来るかもしれません dim objScript as New MSScriptControl.ScriptControlClass objScript.Language = "VBScript" objScript.AddCode( ss ) ' Sampleプロシージャの実行 ObjScript.Run("Smaple") といった具合です

g_zero
質問者

お礼

なるほど、リソースマネージャから取得した文字列を「Microsoft Script Control」でスクリプトとして実行するといった感じの流れですね。よくわかりました。 ところで上記プログラムは.Net Frameworkさえ入っていればどのマシンでも動くものなのでしょうか?「Microsoft Script Control」はVistaには入っていないと聞いたことがあります。コンパイルさえすればVista上でも動くのでしょうか? 分かりましたらお願いします。

その他の回答 (1)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

Vista Ultimateには Msscript.OCXは Windows\Systemに存在するようです ただ、確認したVistaには VB2005EEなどをインストールしたあとなので素のVistaで搭載されてるのかを確認していません また、バージョンのチェックも必要でしょう Interropで参照設定されたDLLの配布が可能なのかも確認した方がいいでしょう

g_zero
質問者

お礼

色々参考になりました。 環境を借りて私も調べてみたいと思います。 ありがとうございました。

関連するQ&A