Windows10(64bit版)VBScript でWin32API | ジャギオ@Ameba

テーマ:

 

 

Windows10でも VBScript で Win32API を使いたくて探したら、

 

CX's Hello, World! » Hello, Win32 API(VBScript) World!

http://cx20.main.jp/blog/hello/2012/04/20/hello-win32-api-vbscript-world/

のソースコード(VBScript + COM + DynamicWrapper + Win32 API)を動かせた!

 

まず、

glsft.free.fr - DynaWrap - DynaCall Wrapper

http://glsft.free.fr/index.php?option=content&task=view&id=47

のDynaWrap.zip をダウンロードして、

 

次に、

PHPでWin32APIを呼ぶ(Windows) - Qiita

https://qiita.com/joh/items/9f54c68768e356c51157

の「DynamicWrapper をインストール」参考に

解凍した DynaWrap.dll があるフォルダで、管理者権限cmdで

regsvr32.exe dynwrap.dll

でインストールできた。

 

cscript だと

Windows 7(x64)でVBScriptからCreateObjectすると800A01ADエラーなったので、

https://www.majishini.net/hg/post/2013/20130601-021/

の通り、コマンドを32bit版cscriptに変えて動かしたらOKだった。

%SystemRoot%\SysWow64\cscript.exe (注1).vbs

(注1)は

(VBScript + COM + DynamicWrapper + Win32 API)のソース。

 

下記の通り、Win32APIなので、

ウインドウが表示される。

 

ちなみに、

regeditで「DynamicWrapper」を検索すると、

コンピューター\HKEY_CLASSES_ROOT\DynamicWrapper

などが登録されていることを確認できた。

また、VBScript でCreateObjectする

"Scripting.FileSystemObject"もレジストリに登録されている。

結局、レジストリに名前を登録して、

それに対応した処理が何らかの仕組み(たぶん、プログラムのパス等)で登録されているのだろう。

 

以上です。#####