win32com - PyWin32(Python for Windows extensions)
《 初回公開:不明 , 最終更新:2025/07/03 》
【 目次 】
PyWin32とcomオブジェクト
win32comとかPyWin32とかPython for Windows extensionsとかいろいろな名前で呼ばれているが同じもののようだ。
win32comはPythonからimoprtするモジュール名。
rubyで同様なものにWin32OLE(Rubyist Magazine - Win32OLE 活用法 【第 1 回】 Win32OLE ことはじめ)がある。
要はPythonからCOMとかActiveXとか呼ばれているVB6等で昔盛んに使われていたWindowsOSのCOMオブジェクトと呼ばれるプログラム部品を呼び出して利用できるようにする事。
.NETが出てくる前までのmicrosoftのコンポーネント技術といったところか。
COMオブジェクトとしてはExcelを操ったり,BASP21(BASP21 DLL)等がなにかと重宝した。
microsoftが何かと呼び方をころころと変えたりして混乱した。
そういやWindowsDNA(Windows 2000 - Development Guide for Business Applications)なんてのもあったなぁ、今じゃ覚えている人もいないと思うけど。
PyWin32をインストール
pipを使ってインストール
pip install pywin32
onlineドキュメント
comオブジェクトを操作してみる。
excelを操作する例は良く見かけるので、それ以外の例を。
まずはIEで愚鈍人サイトを表示してみる。
import win32com.client
ie = win32com.client.Dispatch("InternetExplorer.Application")
ie.Visible = True
ie.Addressbar = True
ie.Navigate("http://ichitcltk.hustle.ne.jp/gudon2/index.php")
もう一つサンプルを。
WshShellオブジェクトを使ってnotepadを起動。
Windows管理者のためのWindows Script Host入門:第5回 WshShellオブジェクトの詳細(1) (2/4) - @ITを参考に。
import win32com.client
wshShell = win32com.client.Dispatch("WScript.Shell")
wshShell.Run("notepad.exe")
使い方のサンプルコード
他にもいろいろとWindowsで使えるみたい。
win32ui, win32con, win32gui等のモジュールが含まれていて、comオブジェクトだけでなくいろいろな事ができるみたい。
でも、使い方がよくわからん!
[pythonインストールデレクトリ]\Lib\site-packages\win32\Demos\デレクトリにサンプルプログラムが入っている。
win32gui_demo.pyなんかを実行してみると面白い。
関連する話題
ctypesモジュール
単にWindowsAPI等を呼び出すだけならわざわざPyWin32をインストールしなくてもpython標準添付のctypesモジュールで事足りるようだが。
- pythonでWindows APIを実行する - zbdk's diary
- 15.18. ctypes ? Pythonのための外部関数ライブラリ ? Python 2.7ja1 documentation
comtypesパッケージ
comtypesというライブラリもあって
comtypes外部関数インターフェースライブラリに基づく軽量の純粋な Python COMパッケージです。 comtypes純粋な Python でカスタムおよびディスパッチベースの COM インターフェイスを定義、呼び出し、実装できます。
OpenPyXL
excelを操作するにはOpenPyXLなるものもあるもよう。