AX

電霊ログ

私のやってるサイト、電子の言霊の活動ログ

カテゴリークラウド

タグリスト

最近のトラックバック

月別アーカイブ(タブ)

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  • VBScript が実行できない

少し前から VBScript がなぜなのか実行できなくなっていたので、グーグルで調べて解決した備忘録。ちなみにこれが治ったら、スカイプのアップデートのエラーも出なくなった。
!このやり方はレジストリを書き換えます、大事な部分に間違った操作をすると最悪の場合パソコンが起動しなくなるなど危険ですので慎重に完全なる自己責任で行って下さい!


#PC環境はWindows Vista です

HSP で VBScript を呼び出すスクリプトを実行したところ、
newcom objVBsc, "ScriptControl"
objVBsc("Language") = "VBScript"
「#Error 39 in line 2 (C:\***\***)
 -->外部オブジェクトの呼び出しに失敗しました」
というエラーが出て「objVBsc("Language")="VBScript"」の部分で実行できなかった。

そこでWSHの入門サイトを見ながらメモ帳で
Wscript.Echo "メッセージを表示"
という初歩的な内容を「test.vbs」の名前で保存し実行してみたら今度は
「Windows Script Host
 スクリプト "C:\***\***\Desktop\test.vbs" のスクリプト エンジン "VBScript" が見つかりません。」
というエラーが出て実行できない。
これは明らかにおかしいので調べてみることに。


エラーの内容を手がかりに検索して見るとこれらのサイトを見つけた
スクリプト エンジン "VBScript" が見つかりません。
VBScript:VBScriptのファイル(XXX.vbs)を実行すると「"スクリプト エンジン VBScript"が見つかりません」エラーが発生する際の対処方法 - 覚書 - My Knowledge Base - FC2ブログ版
Windows Vistaでvbscript.dllを無効に | Windows系OSのQ&A【OKWave】

いずれもコマンドプロンプトから、
regsvr32 -u vbscript.dll や
regsvr32 vbscript.dll を呼び出すという同じ内容。
この方法で試してみると成功しましたと出るものの解決せず。


さらに調べて見ると別の方法が記されているこのページを見つけた
windows のスプリクトエンジンについて | Windows 7のQ&A【OKWave】

回答No.1の【アンインストールの場合】
の手順通りにやってみたところ、途中レジストリの書き換えの際にエラーが出たもののアクセス許可を与えて解決出来た。これで正常に実行できるようになった。

以下順を追って自分がやった事を書いて見る。
基本的には上記のリンク内の内容とほぼ同じ。


まずレジストリエディタを開く、レジストリエディタを開くには「ファイル名を指定して実行」から「regedt32」と入力してOKを押す。スタートメニューに「ファイル名を指定して実行」が無い事も有るらしいので(ファイル名を指定して実行がない:Windows(ウィンドウズ)の使い方-Windows Vista(ウィンドウズビスタ)
別の方法では、スタートメニューを開いて検索ボックスに「regedit」と入力してファイルを検索し出てきた「regedit.exe」を実行でも出来るはず。

レジストリエディタを開いたら、
「HKEY_CLASSES_ROOT\CLSID\{B54F3741-5B07-11cf-A4B0-00AA004A55E8}\InprocServer32」
この場所を探す。

見つけたら InprocServer32 を選択し、切り替わった右側の画面内にある、(既定)をダブルクリック 又は 右クリックメニューから「修正(M)...」を押して 編集ダイアログを出し、値のデータの記入欄に「C:\Windows\system32\vbscript.dll」と入力してOKを押す。
(自分のところではここが違う値になっていた。だから VBScript が使えなかったんだね)

reg3.png

reg4.png

と、ここまでは上記のリンク先の内容と同一。
しかし自分の場合はここで
「値の編集エラー 〇〇を編集できません。値の内容を書き込み中に、エラーが発生しました。」
というエラーダイアログが出た。
この状況は先のページには書かれていなかったので以下からは自分がやってみた事。

アクセスの許可を設定する。
InprocServer32 の右クリックメニューから「アクセスの許可(P)...」をクリックして「InprocServer32 のアクセス許可」のダイアログを出す。

reg1.png

ダイアログが出たら、「セキュリティ」タブの「グループ名またはユーザー名(G)」内の「Administrators」を選択し、その下の「〇〇 のアクセス許可(P)」欄の中の「フル コントロール」の許可チェックボックスをクリックしオンの状態に(自分は Administrators を変更したけど Users でも良いかも)。

reg2.png

できたらOKを押してダイアログを閉じる。
そしてもう一度(既定)キーの値を変更する。
(最後にアクセス許可の設定を元に戻しといた方が良いかも?)

自分はこれで解決できました まる


更に少し前から Skype のアップデート時に、
「the installer has encountered an unexpected error installing this package. this may indicate a problem with this package. the error code is 2738.」
というエラーが出ていた問題も VBScript を修正したら治っていた。
どうやら Skype が裏で使っていたもよう。

コメント

検索しやすいように Skype のエラーメッセージを追記した。

コメントの投稿

   管理者にだけ表示を許可する
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。