青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

<2008年8月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

統(tǒng)計(jì)

  • 隨筆 - 44
  • 文章 - 0
  • 評(píng)論 - 86
  • 引用 - 0

常用鏈接

留言簿(6)

隨筆分類(lèi)(31)

隨筆檔案(44)

Mining

最新隨筆

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

使用 python 寫(xiě) COM
Python 支持Com調(diào)用(client com) 以及撰寫(xiě)COM 組件(server com).
1. com 調(diào)用示例(使用Windows Media Player 播放音樂(lè))
from win32com.client import Dispatch
mp 
= Dispatch("WMPlayer.OCX")
tune 
= mp.newMedia("C:/WINDOWS/system32/oobe/images/title.wma")
mp.currentPlaylist.appendItem(tune)
mp.controls.play()

2. com server 的編寫(xiě)
主要可以參考 <<Python Programming on Win32 之 Chapter 12 Advanced Python and COM http://oreilly.com/catalog/pythonwin32/chapter/ch12.html >>
示例(分割字符串)
- 代碼
class PythonUtilities:
    _public_methods_ 
= [ 'SplitString' ]
    _reg_progid_ 
= "PythonDemos.Utilities"
    
# NEVER copy the following ID 
    # Use "print pythoncom.CreateGuid()" to make a new one.
    _reg_clsid_ = "{41E24E95-D45A-11D2-852C-204C4F4F5020}"
    
    
def SplitString(self, val, item=None):
        
import string
        
if item != None: item = str(item)
        
return string.split(str(val), item)
 
# Add code so that when this script is run by
#
 Python.exe, it self-registers.
if __name__=='__main__':
    
print "Registering COM server"
    
import win32com.server.register
    win32com.server.register.UseCommandLine(PythonUtilities)

- 注冊(cè)/注銷(xiāo)Com

Command-Line Option

Description

 

The default is to register the COM objects.

--unregister

Unregisters the objects. This removes all references to the objects from the Windows registry.

--debug

Registers the COM servers in debug mode. We discuss debugging COM servers later in this chapter.

--quiet

Register (or unregister) the object quietly (i.e., don't report success).


- 使用COM
可以在python 命令行下運(yùn)行
>>> import win32com.client
>>> s = win32com.client.Dispatch("PythonDemos.Utilities")
>>> s.SplitString("a,b,c"",")
((u
'a', u'a,b,c'),)
>>>

3. python server com 原理
其實(shí)在注冊(cè)表中查找到python com 的實(shí)現(xiàn)內(nèi)幕
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{41E24E95-D45A-11D2-852C-204C4F4F5020}]
@
="PythonDemos.Utilities"

[HKEY_CLASSES_ROOT\CLSID\{41E24E95-D45A-11D2-852C-204C4F4F5020}\Debugging]
@
="0"

[HKEY_CLASSES_ROOT\CLSID\{41E24E95-D45A-11D2-852C-204C4F4F5020}\Implemented Categories]

[HKEY_CLASSES_ROOT\CLSID\{41E24E95-D45A-11D2-852C-204C4F4F5020}\Implemented Categories\{B3EF80D0-68E2-11D0-A689-00C04FD658FF}]

[HKEY_CLASSES_ROOT\CLSID\{41E24E95-D45A-11D2-852C-204C4F4F5020}\InprocServer32]
@
="pythoncom25.dll"
"ThreadingModel"="both"

[HKEY_CLASSES_ROOT\CLSID\{41E24E95-D45A-11D2-852C-204C4F4F5020}\LocalServer32]
@
="D:\\usr\\Python\\pythonw.exe \"D:\\usr\\Python\\lib\\site-packages\\win32com\\server\\localserver.py\" {41E24E95-D45A-11D2-852C-204C4F4F5020}"

[HKEY_CLASSES_ROOT\CLSID\{41E24E95-D45A-11D2-852C-204C4F4F5020}\ProgID]
@
="PythonDemos.Utilities"

[HKEY_CLASSES_ROOT\CLSID\{41E24E95-D45A-11D2-852C-204C4F4F5020}\PythonCOM]
@
="PythonDemos.PythonUtilities"

[HKEY_CLASSES_ROOT\CLSID\{41E24E95-D45A-11D2-852C-204C4F4F5020}\PythonCOMPath]
@
="D:\\"

inproc server 是通過(guò)pythoncom25.dll 實(shí)現(xiàn)
local server 通過(guò)localserver.py 實(shí)現(xiàn)
com 對(duì)應(yīng)的python 源文件信息在 PythonCOMPath & PythonCOM

4. 使用問(wèn)題
用PHP 或者 c 調(diào)用com 的時(shí)候
<?php
$com = new COM("PythonDemos.Utilities");
$rs = $com->SplitString("a b c");
foreach($rs as $r)
    
echo $r."\n";
?>
會(huì)碰到下面的一些錯(cuò)誤.
pythoncom error: PythonCOM Server - The 'win32com.server.policy' module could not be loaded.
<type 'exceptions.ImportError'>: No module named server.policy pythoncom error: CPyFactory::CreateInstance failed to create instance. (80004005)


可以通過(guò)2種方式解決:
a. 設(shè)置環(huán)境 PYTHONHOME = D:\usr\Python
另外在c ++ 使用python 的時(shí)候, 如果import module 出現(xiàn)錯(cuò)誤 'import site' failed; use -v for traceback 的話, 也可以通過(guò)設(shè)置這個(gè)變量解決.

b. 為com 生產(chǎn)exe, dll 可執(zhí)行文件, setup.py 代碼如下 :
from distutils.core import setup 
import py2exe 

import sys 
import shutil 

# Remove the build tree ALWAYS do that! 
shutil.rmtree("build", ignore_errors=True) 

# List of modules to exclude from the executable 
excludes = ["pywin""pywin.debugger""pywin.debugger.dbgcon""pywin.dialogs""pywin.dialogs.list"

# List of modules to include in the executable 
includes = ["win32com.server"

# ModuleFinder can't handle runtime changes to __path__, but win32com uses them 
try
    
# if this doesn't work, try import modulefinder 
    import py2exe.mf as modulefinder 
    
import win32com 
    
    
for p in win32com.__path__[1:]: 
        modulefinder.AddPackagePath(
"win32com", p) 
    
    
for extra in ["win32com.shell""win32com.server"]: #,"win32com.mapi" 
        __import__(extra) 
        m 
= sys.modules[extra] 
        
for p in m.__path__[1:]: 
            modulefinder.AddPackagePath(extra, p) 

except ImportError: 
    
# no build path setup, no worries. 
    pass 

# Set up py2exe with all the options 
setup( 
    options 
= {"py2exe": {"compressed"2
                          
"optimize"2
                          
#"bundle_files": 1, 
                          "dist_dir""COMDist"
                          
"excludes": excludes, 
                          
"includes": includes}}, 
    
# The lib directory contains everything except the executables and the python dll. 
    # Can include a subdirectory name. 
    zipfile = None, 
    com_server 
= ['PythonDemos'], # 文件名!!
    ) 


ref:
http://oreilly.com/catalog/pythonwin32/chapter/ch12.html 
http://blog.donews.com/limodou/archive/2005/09/02/537571.aspx 

posted on 2008-08-14 17:02 泡泡牛 閱讀(6138) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): Python


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久本道综合色狠狠五月| 性欧美大战久久久久久久久| 最新国产成人av网站网址麻豆| 99精品视频免费观看| 欧美黄色免费网站| 国产精品久久久久久久9999| 在线免费观看日本欧美| 久久天堂精品| 久久久久久9999| 韩国一区二区在线观看| 久久人体大胆视频| 久久久五月婷婷| 亚洲盗摄视频| 亚洲国产精品第一区二区三区| 蜜桃久久av| 91久久国产自产拍夜夜嗨| 亚洲国产成人精品女人久久久| 媚黑女一区二区| 日韩亚洲欧美精品| 亚洲毛片网站| 国产精品成人免费| 久久国产精品免费一区| 久久精品综合一区| 亚洲国产欧洲综合997久久| 亚洲国产精品精华液网站| 欧美日韩免费高清一区色橹橹| 亚洲专区国产精品| 久久国产精品高清| 亚洲人成小说网站色在线| 日韩亚洲欧美一区| 国产麻豆精品久久一二三| 狂野欧美一区| 欧美精品一区二区蜜臀亚洲| 亚洲欧美日韩精品一区二区| 久久av一区二区三区亚洲| 91久久精品国产91性色tv| 一本久久综合亚洲鲁鲁| 国产一区二区三区在线观看视频| 欧美凹凸一区二区三区视频| 欧美精品国产一区| 久久精品国产欧美激情| 欧美sm视频| 久久国产福利| 欧美日本国产视频| 久久理论片午夜琪琪电影网| 欧美精品激情在线| 久久国产精品一区二区| 欧美片第一页| 久久在线视频在线| 欧美色中文字幕| 欧美福利影院| 国产欧美91| 亚洲日韩欧美视频| 狠狠88综合久久久久综合网| 亚洲毛片视频| 悠悠资源网亚洲青| 欧美剧在线免费观看网站| 欧美xx69| 国产精品久久99| 欧美激情视频免费观看| 国产日产亚洲精品| 一区二区三区精密机械公司 | 亚洲欧美视频一区| 亚洲精品在线观看免费| 欧美在线视频观看免费网站| 亚洲图片激情小说| 欧美精品v日韩精品v韩国精品v| 久久一区免费| 国产日韩一区二区三区在线播放| 日韩视频免费| 日韩午夜一区| 欧美11—12娇小xxxx| 美女福利精品视频| 国产一区二区三区视频在线观看| 亚洲午夜性刺激影院| 一区二区三区高清在线观看| 欧美ab在线视频| 免费av成人在线| 国产一区二区三区在线观看免费 | 欧美性生交xxxxx久久久| 亚洲黄色一区| 亚洲精品美女在线| 免费欧美视频| 欧美激情a∨在线视频播放| 在线观看国产成人av片| 久久精品一区中文字幕| 久久伊人亚洲| **网站欧美大片在线观看| 久久久久国内| 农村妇女精品| 亚洲欧洲一区二区在线观看 | 韩日精品中文字幕| 欧美在线三区| 久久综合色婷婷| 亚洲成在人线av| 欧美h视频在线| 亚洲精品视频在线观看免费| 一区二区三区四区在线| 欧美性猛交一区二区三区精品| 亚洲午夜免费福利视频| 久久不见久久见免费视频1| 国产日韩视频一区二区三区| 欧美一区观看| 欧美顶级大胆免费视频| 日韩一级片网址| 国产精品海角社区在线观看| 亚洲综合视频网| 六月天综合网| 99成人在线| 国产精品久久久对白| 欧美一区二区三区久久精品| 欧美jizz19性欧美| aa日韩免费精品视频一| 国产精品视频一区二区三区| 久久精品国产99国产精品澳门 | 欧美新色视频| 欧美在线观看一区二区三区| 国产日韩欧美精品在线| 亚洲第一网站| 亚洲视频精选| 亚洲国语精品自产拍在线观看| 亚洲香蕉成视频在线观看| 国产午夜精品视频| 欧美性大战久久久久久久| 欧美激情国产高清| 美女精品网站| 久久噜噜亚洲综合| 久久久久天天天天| 久久久久久久久久久久久女国产乱 | 午夜激情综合网| 亚洲社区在线观看| 一本色道**综合亚洲精品蜜桃冫 | 一区二区视频免费完整版观看| 国产美女精品视频| 国产欧美欧洲在线观看| 国产酒店精品激情| 国产美女精品人人做人人爽| 国产日韩欧美成人| 国产综合网站| 一区二区在线看| 亚洲激情视频网站| 亚洲欧洲美洲综合色网| 亚洲精品一品区二品区三品区| 亚洲精品国产无天堂网2021| 亚洲精品久久久久久久久久久久| 亚洲娇小video精品| 日韩午夜免费| 亚洲欧美日韩精品综合在线观看 | 欧美视频在线视频| 国产美女精品人人做人人爽| 国产亚洲午夜高清国产拍精品| 国产视频久久| 亚洲第一狼人社区| 日韩午夜免费视频| 亚洲欧美日韩中文在线制服| 久久国产日韩| 欧美成人免费全部| 亚洲日本成人| 亚洲一区免费观看| 久久久久久久综合色一本| 欧美成人乱码一区二区三区| 国产精品www994| 黄色成人在线网站| 日韩视频精品在线| 亚洲免费影院| 另类国产ts人妖高潮视频| 亚洲电影观看| 亚洲欧美日韩电影| 美日韩在线观看| 欧美午夜片在线观看| 国产一区香蕉久久| 日韩亚洲一区在线播放| 欧美在线国产精品| 亚洲第一天堂无码专区| 亚洲一区二区在线看| 久久综合婷婷| 国产精品电影观看| 亚洲国产精品成人精品| 亚洲影院免费观看| 欧美成人午夜免费视在线看片| aa级大片欧美| 鲁大师成人一区二区三区| 国产精品超碰97尤物18| 国内视频精品| 亚洲伊人观看| 欧美大片专区| 亚洲欧美中文另类| 欧美日本二区| 一色屋精品视频在线观看网站| 亚洲手机在线| 老司机免费视频一区二区三区| 中日韩男男gay无套| 久久―日本道色综合久久| 亚洲国产另类精品专区| 欧美日韩国产一区二区三区| 国产精品久久影院| 亚洲激情偷拍| 久久视频这里只有精品| 在线视频亚洲欧美| 欧美激情网站在线观看|