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モジュールで事足りるようだが。

comtypesパッケージ

comtypesというライブラリもあって

comtypes外部関数インターフェースライブラリに基づく軽量の純粋な Python COMパッケージです。 comtypes純粋な Python でカスタムおよびディスパッチベースの COM インターフェイスを定義、呼び出し、実装できます。

OpenPyXL

excelを操作するにはOpenPyXLなるものもあるもよう。

PyWin32とは関係ないがpythonのwindowに関する情報を

ページのトップへ戻る