==[[Python Win32 Extensions]]==
[[Python]] | [[COM]] |
===Links===
*http://sourceforge.net/projects/pywin32/files/
=====Quick Start=====
*http://docs.activestate.com/activepython/2.4/pywin32/html/com/win32com/[[HTML]]/docindex.html=====Win32 COM開発[[COM]]開発=====
*http://msdn.microsoft.com/ja-jp/library/aa139672.aspx
*[http://www.google.co.jp/url?sa=t&source=web&ct=res&cd=6&url=http%3A%2F%2Fdownload.microsoft.com%2Fdownload%2F8%2F0%2F4%2F8042C28F-9673-4931-91CE-021D3B8D4740%2F0402_Anno_OST_1.pdf&ei=iL26SsCtEdCZkQXQ_uzuBQ&usg=AFQjCNFIMro0JmQAy_sBhN6duvnvcrsU_g&sig2=KJ9D1ym3yvXoxXfI7kJF5g スクリプトを使用した Windows Server 管理の自動化]
*[http://msdn.microsoft.com/ja-jp/library/aa155075.aspx MSDN Library Scripting]
*[http://msdn.microsoft.com/ja-jp/library/cc446503.aspx Windows Scripting Host のオブジェクト]
==COM オブジェクトをPythonから利用するオブジェクトを[[Python]]から利用する==
===はじめに===
*Excelを立ち上げてワークブックを追加してセルにHello[[Excel]]を立ち上げてワークブックを追加してセルにHello.
>>> import win32com.client
>>> o = win32com.client.Dispatch("[[Excel]].Application")
>>> o.Visible = 1
>>> o.Workbooks.Add()
<COMObject [[COM]]Object Add>
>>> o.Cells(1,1).Value = "Hello"
==[[COM ]] の仕様を確認する方法=====COM と [[Windows ]] レジストリ===*COMコンポーネントは、DLLかEXE[[COM]]コンポーネントは、DLLかEXE*COMは、レジストリから、CLSIDを参照することで、ディスク上からコンポーネントを探し出す。[[COM]]は、レジストリから、CLSIDを参照することで、ディスク上からコンポーネントを探し出す。
*以下はShell.Application のCLSID
[[File:1066_py_win32com00.jpg]]
====以下のようにプログラム名から、間接的にCLSIDを取得できる。====
=====レジストリ HKEY_CLASSES_ROOT 以下に登録されている、Shell.Application を [[Python ]] から 利用してみる=====
[[File:1067_py_win32com01.jpg]]
*HKEY_CLASSES_ROOTHKEY_CLASSES_[[R]]OOT\Shell.Application
[[File:1068_py_win32com02.jpg]]
[[File:1069_py_win32com03.jpg]]
===OLE/[[COM ]] Object Viewer で、COMの仕様を確認するで、[[COM]]の仕様を確認する===
*Download : [http://www.microsoft.com/DOWNLOADS/details.aspx?FamilyID=5233b70d-d9b2-4cb5-aeb6-45664be858b6&displaylang=en OLE/COM Object Viewer]
**[http://msdn.microsoft.com/ja-jp/windows/bb980924.aspx Windows SDK] に含まれる IViewer.dll が必要。
*Shell.Application の内容を確認してみる
=====[[Visual Studio ]] の同梱されている=====
[[File:1070_py_win32com04.jpg]]
=====Type Libraries から・・・=====
*ファイルを開くから、上記レジストリエディタで確認した SHELL32.DLL を選択しても起動する。
[[File:1073_py_win32com07.jpg]]
=====SetTimeを選択すると、Help SetTimeを選択すると、[[Help]] と シグネチャが確認できる。=====
[[File:1074_py_win32com08.jpg]]
===Visual Basic Editor のオブジェクトブラウザで 確認===
=====[[Excel ]] の Visual Basic Editor から上記 OLE/COM Object Viewer で確認したのと同様の内容を確認=====
*ツール - マクロ - Visual Basic Editor
[[File:1075_py_win32com09.jpg]]
==例==
[[WshShell]] |
===[[WScript]].Network===
====プリンタを列挙====
=====[[WScript]].Network で、呼び出されるCOM=====
[[File:1063_py_win32com_wsh_net01.jpg]]
=====WshNetwork の EnumPrinterConnections を呼び出してみる=====
=====実行=====
>>> import win32com.client
>>> wsh = win32com.client.Dispatch('[[WScript]].Network')
>>> printers = wsh.EnumPrinterConnections()
>>> for i in range(0, printers.Count(), 1):