tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルFileSystemObjectについて
記事No15289
投稿日: 2011/08/04(Thu) 19:45
投稿者るーるー
個人ではどうしても解決できない問題があるので、質問させてください。

私はWindowsPE上で動作するプログラムを作成しています。
その中で、タイトルにもある、「FileSystemObject」を使う必要が出てきたのですが、
開発環境であるWin XPでは動作するにも関わらず、PE上だとRuntime error 429が発生してしまいます。

調べたところ、「Scrrun.dll」が必要という記事をMicrosoftのサポートで発見したため、
Win PEのSystem32や、実行ファイルのあるフォルダに上記のDLLを置いてみましたが、
結果は変わりませんでした。

また、実行時バインディング(CreateObjectを使用してオブジェクトを作成)、
事前バインディング(Newを使ってオブジェクトを作成)についても変更してみましたが、
結局結果は変わりませんでした。

Win PEという特殊な環境のため、これ以上の情報が得られておらず、困っています。
アドバイスお願いします。

[ツリー表示へ]
タイトルRe: FileSystemObjectについて
記事No15290
投稿日: 2011/08/05(Fri) 01:08
投稿者魔界の仮面弁士
> 私はWindowsPE上で動作するプログラムを作成しています。
お使いのPEのバージョンは何ですか?
また、Scripting support は組み込まれていますか?

> Win PEのSystem32や、実行ファイルのあるフォルダに上記のDLLを置いてみましたが、
Service Pack 等で提供されるファイル群の一部を抜き出して再頒布してはいけませんので、
その点は注意してください。依存ファイル(MSVCRT.dll等)についても同様です。

> 結果は変わりませんでした。
scrrun.dll はレジストリ登録を必要としますが、その点はクリアされていますか?
(WinPE では Windows Installer が利用できないため、自前で登録が必要です)

なお、PE ではレジストリへの変更は次回起動時には失われるため、
永続的に反映させたいのであれば、PEイメージ(boot.wim)をカスタマイズする必要が
あると聞いたことがあります。試したことはないですけれども。

> また、実行時バインディング(CreateObjectを使用してオブジェクトを作成)、
レジストリ登録もマニフェスト指定もされていない状態では、
CreateObject はできないと思いますよ。
PE がマニフェストリソースを読み取ってくれるのかどうかは知りませんけれども。

[ツリー表示へ]
タイトルRe^2: FileSystemObjectについて
記事No15293
投稿日: 2011/08/08(Mon) 15:48
投稿者るーるー
魔界の仮面弁士 様

返信ありがとうございます。

> お使いのPEのバージョンは何ですか?
> また、Scripting support は組み込まれていますか?
WindowsPE2005 Ver1.6です。

> Service Pack 等で提供されるファイル群の一部を抜き出して再頒布してはいけませんので、
> その点は注意してください。依存ファイル(MSVCRT.dll等)についても同様です。
恥ずかしながら知りませんでした。
ありがとうございます。

> scrrun.dll はレジストリ登録を必要としますが、その点はクリアされていますか?
> (WinPE では Windows Installer が利用できないため、自前で登録が必要です)
レジストリ登録はしていません。
コレが原因のようですね。

> なお、PE ではレジストリへの変更は次回起動時には失われるため、
> 永続的に反映させたいのであれば、PEイメージ(boot.wim)をカスタマイズする必要が
> あると聞いたことがあります。試したことはないですけれども。
はい。
その通りです。
次回起動時にはレジストリへの変更は全て元に戻ってしまいます。

> レジストリ登録もマニフェスト指定もされていない状態では、
> CreateObject はできないと思いますよ。
> PE がマニフェストリソースを読み取ってくれるのかどうかは知りませんけれども。
レジストリをいじらなければならないとなると、ちょっと厳しいので、
別の方法を模索してみます。

アドバイスありがとうございました。
勉強になりました。

[ツリー表示へ]