「Python Win32 Extensions」の版間の差分
ナビゲーションに移動
検索に移動
1行目: | 1行目: | ||
− | ==Python Win32 Extensions== | + | ==[[Python Win32 Extensions]]== |
[[Python]] | [[COM]] | | [[Python]] | [[COM]] | | ||
===Links=== | ===Links=== | ||
6行目: | 6行目: | ||
*http://sourceforge.net/projects/pywin32/files/ | *http://sourceforge.net/projects/pywin32/files/ | ||
=====Quick Start===== | =====Quick Start===== | ||
− | *http://docs.activestate.com/activepython/2.4/pywin32/html/com/win32com/HTML/docindex.html | + | *http://docs.activestate.com/activepython/2.4/pywin32/html/com/win32com/[[HTML]]/docindex.html |
− | =====Win32 | + | =====Win32 [[COM]]開発===== |
*http://msdn.microsoft.com/ja-jp/library/aa139672.aspx | *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://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/aa155075.aspx MSDN Library Scripting] | ||
*[http://msdn.microsoft.com/ja-jp/library/cc446503.aspx Windows Scripting Host のオブジェクト] | *[http://msdn.microsoft.com/ja-jp/library/cc446503.aspx Windows Scripting Host のオブジェクト] | ||
− | ==COM | + | ==COM オブジェクトを[[Python]]から利用する== |
===はじめに=== | ===はじめに=== | ||
− | * | + | *[[Excel]]を立ち上げてワークブックを追加してセルにHello. |
>>> import win32com.client | >>> import win32com.client | ||
− | >>> o = win32com.client.Dispatch("Excel.Application") | + | >>> o = win32com.client.Dispatch("[[Excel]].Application") |
>>> o.Visible = 1 | >>> o.Visible = 1 | ||
>>> o.Workbooks.Add() | >>> o.Workbooks.Add() | ||
− | < | + | <[[COM]]Object Add> |
>>> o.Cells(1,1).Value = "Hello" | >>> o.Cells(1,1).Value = "Hello" | ||
− | ==COM の仕様を確認する方法== | + | ==[[COM]] の仕様を確認する方法== |
− | ===COM と Windows レジストリ=== | + | ===COM と [[Windows]] レジストリ=== |
− | * | + | *[[COM]]コンポーネントは、DLLかEXE |
− | * | + | *[[COM]]は、レジストリから、CLSIDを参照することで、ディスク上からコンポーネントを探し出す。 |
*以下はShell.Application のCLSID | *以下はShell.Application のCLSID | ||
[[File:1066_py_win32com00.jpg]] | [[File:1066_py_win32com00.jpg]] | ||
====以下のようにプログラム名から、間接的にCLSIDを取得できる。==== | ====以下のようにプログラム名から、間接的にCLSIDを取得できる。==== | ||
− | =====レジストリ HKEY_CLASSES_ROOT 以下に登録されている、Shell.Application を Python から 利用してみる===== | + | =====レジストリ HKEY_CLASSES_ROOT 以下に登録されている、Shell.Application を [[Python]] から 利用してみる===== |
[[File:1067_py_win32com01.jpg]] | [[File:1067_py_win32com01.jpg]] | ||
− | * | + | *HKEY_CLASSES_[[R]]OOT\Shell.Application |
[[File:1068_py_win32com02.jpg]] | [[File:1068_py_win32com02.jpg]] | ||
42行目: | 42行目: | ||
[[File:1069_py_win32com03.jpg]] | [[File:1069_py_win32com03.jpg]] | ||
− | ===OLE/COM Object Viewer | + | ===OLE/[[COM]] Object Viewer で、[[COM]]の仕様を確認する=== |
*Download : [http://www.microsoft.com/DOWNLOADS/details.aspx?FamilyID=5233b70d-d9b2-4cb5-aeb6-45664be858b6&displaylang=en OLE/COM Object Viewer] | *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 が必要。 | **[http://msdn.microsoft.com/ja-jp/windows/bb980924.aspx Windows SDK] に含まれる IViewer.dll が必要。 | ||
*Shell.Application の内容を確認してみる | *Shell.Application の内容を確認してみる | ||
− | =====Visual Studio の同梱されている===== | + | =====[[Visual Studio]] の同梱されている===== |
[[File:1070_py_win32com04.jpg]] | [[File:1070_py_win32com04.jpg]] | ||
=====Type Libraries から・・・===== | =====Type Libraries から・・・===== | ||
56行目: | 56行目: | ||
*ファイルを開くから、上記レジストリエディタで確認した SHELL32.DLL を選択しても起動する。 | *ファイルを開くから、上記レジストリエディタで確認した SHELL32.DLL を選択しても起動する。 | ||
[[File:1073_py_win32com07.jpg]] | [[File:1073_py_win32com07.jpg]] | ||
− | ===== | + | =====SetTimeを選択すると、[[Help]] と シグネチャが確認できる。===== |
[[File:1074_py_win32com08.jpg]] | [[File:1074_py_win32com08.jpg]] | ||
===Visual Basic Editor のオブジェクトブラウザで 確認=== | ===Visual Basic Editor のオブジェクトブラウザで 確認=== | ||
− | =====Excel の Visual Basic Editor から上記 OLE/COM Object Viewer で確認したのと同様の内容を確認===== | + | =====[[Excel]] の Visual Basic Editor から上記 OLE/COM Object Viewer で確認したのと同様の内容を確認===== |
*ツール - マクロ - Visual Basic Editor | *ツール - マクロ - Visual Basic Editor | ||
[[File:1075_py_win32com09.jpg]] | [[File:1075_py_win32com09.jpg]] | ||
75行目: | 75行目: | ||
==例== | ==例== | ||
[[WshShell]] | | [[WshShell]] | | ||
− | ===WScript.Network=== | + | ===[[WScript]].Network=== |
====プリンタを列挙==== | ====プリンタを列挙==== | ||
− | =====WScript.Network で、呼び出されるCOM===== | + | =====[[WScript]].Network で、呼び出されるCOM===== |
[[File:1063_py_win32com_wsh_net01.jpg]] | [[File:1063_py_win32com_wsh_net01.jpg]] | ||
=====WshNetwork の EnumPrinterConnections を呼び出してみる===== | =====WshNetwork の EnumPrinterConnections を呼び出してみる===== | ||
85行目: | 85行目: | ||
=====実行===== | =====実行===== | ||
>>> import win32com.client | >>> import win32com.client | ||
− | >>> wsh = win32com.client.Dispatch('WScript.Network') | + | >>> wsh = win32com.client.Dispatch('[[WScript]].Network') |
>>> printers = wsh.EnumPrinterConnections() | >>> printers = wsh.EnumPrinterConnections() | ||
>>> for i in range(0, printers.Count(), 1): | >>> for i in range(0, printers.Count(), 1): |
2020年2月16日 (日) 04:31時点における最新版
目次
Python Win32 Extensions
Links
Official
Quick Start
Win32 COM開発
- http://msdn.microsoft.com/ja-jp/library/aa139672.aspx
- スクリプトを使用した Windows Server 管理の自動化
- MSDN Library Scripting
- Windows Scripting Host のオブジェクト
COM オブジェクトをPythonから利用する
はじめに
- Excelを立ち上げてワークブックを追加してセルにHello.
>>> import win32com.client >>> o = win32com.client.Dispatch("Excel.Application") >>> o.Visible = 1 >>> o.Workbooks.Add() <COMObject Add> >>> o.Cells(1,1).Value = "Hello"
COM の仕様を確認する方法
COM と Windows レジストリ
- 以下はShell.Application のCLSID
以下のようにプログラム名から、間接的にCLSIDを取得できる。
レジストリ HKEY_CLASSES_ROOT 以下に登録されている、Shell.Application を Python から 利用してみる
- HKEY_CLASSES_ROOT\Shell.Application
Shell.Application の使用例
- Shell.Application SetTime()を呼び出す。日付と時刻のプロパティをを表示
>>> import win32com.client >>> sh = win32com.client.Dispatch('Shell.Application') >>> sh.SetTime()
OLE/COM Object Viewer で、COMの仕様を確認する
- Download : OLE/COM Object Viewer
- Windows SDK に含まれる IViewer.dll が必要。
- Shell.Application の内容を確認してみる
Visual Studio の同梱されている
Type Libraries から・・・
Microsoft Shell Controls And Automation を選択して、Viewアイコンもしくはダブルクリック
CoClasses から、Shell を探すと、Methods の中に、SetTimeが見つかる
- ファイルを開くから、上記レジストリエディタで確認した SHELL32.DLL を選択しても起動する。
SetTimeを選択すると、Help と シグネチャが確認できる。
Visual Basic Editor のオブジェクトブラウザで 確認
Excel の Visual Basic Editor から上記 OLE/COM Object Viewer で確認したのと同様の内容を確認
- ツール - マクロ - Visual Basic Editor
Visual Basic Editor から 参照設定ダイアログを起動する
- ツール - 参照設定
Microsoft Shell Controls And Automation をチェックして、OK
表示 - オブジェクトブラウザを起動
Shell - SetTime で内容を確認
例
WshShell |
WScript.Network
プリンタを列挙
WScript.Network で、呼び出されるCOM
WshNetwork の EnumPrinterConnections を呼び出してみる
結果が、WshCollection で返る
実行
>>> import win32com.client >>> wsh = win32com.client.Dispatch('WScript.Network') >>> printers = wsh.EnumPrinterConnections() >>> for i in range(0, printers.Count(), 1): ... print printers[i] ... XPSPort: Microsoft XPS Document Writer Journal Note Writer Port: Journal ノート ライタ BULLZIP Bullzip PDF Printer USB001 \\Izanami\Canon MP500 Series Printer NEWSOFT \\Izanami\PageManager PDF Writer
© 2006 矢木浩人