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" ' コンポーネントのメソッドを呼び出します。
実行方法
- メモ帳(notepad.exe)を起動し上記サンプルを貼り付けます。
- 「SpeakHello.vbs」と名前を付けてデスクトップに保存します。
- デスクトップ上にある「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 |