CX's Hatena Blog

はてなブログを使ってみるテスト

Windows 標準コンポーネント最速マスター

Windows/Office武勇伝 <開発者グループOPEN記念>

Windows 標準コンポーネントの一覧です。他の言語をある程度知っている人はこれを読めば Windows 標準コンポーネントをマスターして Windows プログラミングが書けるようになるかもしれません。

主に、VBScript を知っている人向けの記事ですが、知らない方でも、雰囲気は掴んでいただけるのではないかと思います。

VBScript の歴史

VBScript は Windows に標準で付属するスクリプト言語Visual Basic のサブセットです。
その歴史は古く、Windows 95/NT 4.0 の時代から、サポートされています。

OS IE4.0
(WSH1.0)
IE5.01
(WSH2.0/5.1)
IE5.5
(WSH5.5)
IE6
(WSH5.6)
IE7
(WSH5.7)
IE8~
(WSH5.8)
Windows 95 VBS 3.0 VBS 5.0 VBS 5.5 VBS 5.6
Windows NT 4.0 VBS 3.0 VBS 5.0 VBS 5.5 VBS 5.6
Windows 98 VBS 3.0 VBS 5.0 VBS 5.5 VBS 5.6
Windows 2000 VBS 5.0 VBS 5.5 VBS 5.6 VBS 5.7
Windows Me VBS 5.5 VBS 5.6
Windows XP VBS 5.6 VBS 5.7 VBS 5.8
Windows 2003 VBS 5.6 VBS 5.7 VBS 5.8
Windows Vista VBS 5.7 VBS 5.8
Windows 2008 VBS 5.7 VBS 5.8
Windows 7 VBS 5.8
Windows 2008 R2 VBS 5.8
Windows 8 VBS 5.8
Windows 2012 VBS 5.8

また、COM コンポーネントは、Windows で使えるソフトウェア部品(ライブラリ)の規格の1つです。 COM に対応した言語であれば、任意の言語から、このライブラリを呼び出して使用することができます。 中でも「VBScript」は「COM コンポーネント」と相性が良いと言われています。

以下は「VBScript」による「COM コンポーネント」の呼出しサンプルになります。

サンプルコード

Dim voice                                ' コンポーネント参照用の変数を宣言します。
Set voice = CreateObject("SAPI.SpVoice") ' CreateObject(<ProgID>) でコンポーネントを生成します。
voice.Speak "Hello"                      ' コンポーネントのメソッドを呼び出します。

実行方法

  1. メモ帳(notepad.exe)を起動し上記サンプルを貼り付けます。
  2. 「SpeakHello.vbs」と名前を付けてデスクトップに保存します。
  3. デスクトップ上にある「SpeakHello.vbs」をダブルクリックします。

実行結果

COM コンポーネントの1つである「SAPI (Microsoft Speech API)」により「Hello」と読み上げられます。

このように、COM コンポーネントは手軽に利用することができます。

以下は、Windows に付属している主要なコンポーネントの一覧と各種サンプルへのリンクになります。

Windows 標準 コンポーネント

API リファレンス ProgID の例 VBScript JScript PowerShell UWSC
ADO (ActiveX Data Objects) ADODB.Connection Link Link Link Link
CDO(Collaboration Data Objects) CDO.Message Link Link Link Link
FileSystem Object Scripting.FileSystemObject Link Link Link Link
Script Runtime Dictionary Scripting.Dictionary Link Link Link Link
VBScript Regular Expression VBScript.RegExp Link Link Link Link
Windows Script Host Shell Object WScript.Shell Link Link Link Link
Shell Automation Service Shell.Application Link Link Link Link
Internet Explorer InternetExplorer.Application Link Link Link Link
SAPI (Microsoft Speech API) SAPI.SpVoice Link Link Link Link
WBEM Scripting Locator WbemScripting.SWbemLocator Link Link Link Link
XML DOM MSXML2.DOMDocument Link Link Link Link
XMLHTTP (WinINet) MSXML2.XMLHTTP Link Link Link Link
ServerXMLHTTP (WinHTTP) MSXML2.ServerXMLHTTP Link Link Link Link
WinHTTP WinHttp.WinHttpRequest Link Link Link Link

Microsoft Office 付属コンポーネント

API リファレンス ProgID の例 VBScript JScript PowerShell UWSC
Microsoft Excel Excel.Application Link Link Link Link
Microsoft Word Word.Application Link Link Link Link
Microsoft Access Access.Application Link Link Link Link
Microsoft Power Point PowerPoint.Application Link Link Link Link

付録

一年くらい前になりますが、Windows で動作する各種言語で手当たり次第に COM の呼出しサンプルを書いてみました。

ニーズがあるか分かりませんが、各言語でのサンプル(約50個)をまとめておきます。

上記の COM コンポーネントは、下記言語でも使えるかと思いますので、興味がある方は試してみてください。

言語 ランタイム ライブラリ サンプル
C言語 Link
C++ Link
C++ #import Link
C++ ATL Link
C++ MFC Link
VB6 Link
VBA Link
VBScript Link
JScript Link
UWSC Link
Perl Win32::OLE Link
Ruby win32ole Link
Python win32com.client Link
PHP php_com_dotnet.dll Link
Lua luacom Link
Tcl tcom Link
Delphi Link
Pascal Link
D言語 Link
Go Link
Objective-C Link
Haskell COM support library Link
MASM Link
GAS Link
LLVM Assembler Link
PowerShell .NET Link
C# .NET Link
VB.NET .NET Link
C++/CLI .NET Link
F# .NET Link
JScript.NET .NET Link
IronPython .NET Link
IronRuby .NET Link
Cobra .NET Link
Boo .NET Link
Nemerle .NET Link
Oxygene .NET Link
MSIL .NET Link
Java Java JACOB Link
Groovy Java JACOB Link
Scala Java JACOB Link
JRuby Java JACOB Link
Jython Java JACOB Link
Clojure Java JACOB Link
BeanShell Java JACOB Link
Rhino Java JACOB Link
Java VM Assembler Java JACOB Link

参考記事