みくさん、サンプルまでいただいてありがとうございます。
修正したつもりです。
http://www.egroups.co.jp/files/sakura-editor/Developer/Source/WSHHandler4.lzh> 563,602: 変数の定義をfor文でしては駄目
とりあえずふたつめのforの変数をJにしておきました。
shlwapiは、いただいたサンプルを参考にしてSHRegGetPathA相当のReadRegistryを書いてそれに置き換えました。
ですのでもう95でも動く…かな?(手元に2000マシンしか無いので試してません。他に何気なく使っているAPIがあるかも知れません)
他に、
・例外をthrowしていた部分をコールバックに直しました。
・CInterfaceObjectの宣言をCWSH.hに移動しました。(dynamic_castの使用を避けるため)
みくさんのサンプルを走らせて気付いたこと
・Rubyは"RubyScript"では無く"GlobalRubyScript"でした。("RubyScript"はIE用?) 最初にあげたコードで"GlobalRubyScript"に直したら動作しました。
・レジストリを全検索してスクリプトエンジンを列挙してもそれほど時間はかからないみたいですが、どうしましょう?(でも動作速度はマシン依存率が高いかも)