<Windows, Python, win32com> COMサーバの登録

win32comを使って、Windowsのアプリケーションを操作する場合、
そもそも、対象となるアプリケーションが、レジストリregistryに登録されてないと呼び出せない、、ことを知る。

win32comから呼び出し可能か? は、makepy.pyで調べれる。
ここにリストされてると、呼び出し可能っぽい。

>cd /c/Anaconda3/Lib/site-packages/win32com/client
>python makepy.py

http://www.cesarkallas.net/arquivos/apostilas/python/doc/Python%20Programming%20on%20Win32_%20Chapter%2012%20Advanced%20Python%20and%20COM.pdf

18/09/14 修正。

上記ではうまくなかった。
レジストリに登録されていないと呼び出せないので、レジストリを検索してあるか? 調べるが正解っぽい。
regeditレジストリを起動して、HKEY_CLASSES_ROOTにぶら下がっているアプリケーションが呼び出せるもの。

で、本題。
登録されてない場合、どうやって登録するのか?
Windowsアプリケーションの.dll(ダイナミックリンクライブラリ形式)とか、.exe(実行形式)は、
どうも、 ActiveXサーバとか、COMサーバとか呼ばれてるっぽい。
登録は、下記コマンドをコマンドプロンプトでたたく。

#.dllをレジストリに登録
c:\>regsvr32 c:\hage.dll

#.dllをレジストリから削除
c:\>regsvr32 /u c:\hage.dll

#.exeをレジストリに登録
c:\hage.exe /regserver

#.exeをレジストリから削除
c:\hage.exe /unregserver

http://www5.plala.or.jp/softworld/topic_selfregistdll.htm

あと、Win7だと、管理者権限で登録かけないといけんらしい。
その場合、適当にcom.batとかいうファイルを作成して、中を、

c:\hage.exe /regserver

としておいて、管理者権限でcom.batを回せばいい。

COM Interface を Windows vista/Windows 7 で実行するには?

長い道のりじゃ。。。