如何在python中使用ActiveX控件

 我来答
好程序员
2016-01-14 · HTML5前端培训/大数据培训/Java
好程序员
好程序员是IT高端课程培训基地,从平凡到卓越,为梦想而拼搏。
向TA提问
展开全部

[html] view plaincopy

<span style="font-family: Arial, Verdana, sans-serif; white-space: normal; background-color: rgb(255, 255, 255); ">首先,这个东东貌似只有windows上才能实现,所以,需要部署windows下的相关环境</span>  


1、需要安装python

2、安装python的win32com的lib,下载地址:

http://sourceforge.net/projects/pywin32/files/


3、安装本地的web容器,我用的apache的tomcat


4、编写例子:


[html] view plaincopy

import uuid  

import win32com.server.register  

  

class PythonUtilities:   

    _public_methods_ = ['SplitString']   

    _reg_progid_ = "Python.Utilities"   

    #_reg_clsid_ = "{A6688635-62F5-41cb-AF54-CBA84C2F0F86}"   

    _reg_clsid = "{"+uuid.uuid1()+"}"  

    def SplitString(self, val):   

        return "Hello world ", val  

  

if __name__ == '__main__':   

    print "Registering COM server..."  

    win32com.server.register.UseCommandLine(PythonUtilities)  


将这个文件保存到tomcat的webapps下的一个目录中



5、编写测试的html页面


[html] view plaincopy

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  

<html>    

<head>    

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>  

    <SCRIPT LANGUAGE="JavaScript">  

        window.onload = function(){   

        var obj = new ActiveXObject("Python.Utilities");   

  

        alert(obj.SplitString("Hello world"));   

        }   

    </SCRIPT>  

</head>    

<body>    

</body>    

</html>   


放到python文件的同一个目录



6、到命令行执行该python 代码

7、再请求该网页

杜爷1号
推荐于2016-09-01 · 知道合伙人软件行家
杜爷1号
知道合伙人软件行家
采纳数:4973 获赞数:9186
毕业于福建农林大学,本科学士学位。从事IT行业3年,曾参与过多个大型项目的需求调研、软件研发。

向TA提问 私信TA
展开全部
使用win32com模块开发window ActiveX的示例:(如果你还没有装win32com模块的话,请到http://python.net/crew/skippy/win32/Downloads.html下载)。

复制代码代码如下:

# SimpleCOMServer.py

class PythonUtilities:
_public_methods_ = ['SplitString']
_reg_progid_ = "Python.Utilities"
_reg_clsid_ = "{A6688635-62F5-41cb-AF54-CBA84C2F0F86}"

def SplitString(self, val):
return "Hello world ", val

if __name__ == '__main__':
print "Registering COM server..."
import win32com.server.register
win32com.server.register.UseCommandLine(PythonUtilities)

在console下运行:python SimpleCOMServer.py

在HTML页面中调用该Activex组件:

复制代码代码如下:

window.onload = function(){
var obj = new ActiveXObject("Python.Utilities");

alert(obj.SplitString("Hel"));
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式