以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  让狐表再插上python的翅膀  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=146740)

--  作者:shanshuizhujian
--  发布时间:2020/3/1 16:39:00
--  让狐表再插上python的翅膀
最近一直在学习python,学习了一段时间,发现python的确很好玩,至于优点,大家自行百度吧,我就不做这方面的搬运工了。今天就给大家搬一点和fox有关的东西吧。
在fox里调用python 里自己写的方法,返回数据回到fox里,就是给python加上fox的界面,好了废话不多说了,上代码。这些方法来自于互联网,连接在这里,谢谢。http://www.51testing.com/html/53/61753-154560.htmlhttp://www.icodeguru.com/WebServer/Python-Programming-on-Win32/ch05.htm
#################################################
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2020-03-01 16:01:56
# @Author  : shanshuizhujian (shanshuizhujian@gmail.com)
# @Link    : ${link}
# @Version : $Id$
#需要先安装pipywin32模块、requests库
import win32com.server.register
import pythoncom
\'\'\'
这个类主要是为了让foxtable调用python的方法的,也是为了和python之间进行通信的。
一些在foxtable不擅长的可以放到python里来实施,这样可以发挥fox的界面优势,数据库优势,
发挥python灵活,大量库的优势。

[description]
\'\'\'
class MyPyFoxCom:

    _public_methods_=[\'SplitString\',\'getHTMLText\'] #这里一定要把你这个模块的函数名称加进来,否则fox找不到函数。
    _reg_progid_=\'PythonDemos.PyFoxCom\'
#这个地方还是不能直接使用这句话 ,不然没注册一次注册表就多一个id,还是先print出来,然后换上吧。
# 使用"print (pythoncom.CreateGuid())" 得到一个自己的clsid,
    _reg_clsid_=‘刚刚得到的id’

    def SplitString(self, val, item=None):
        import string 
        if item !=None: 
            item=str(item)
        val=str(val)
        return val.split(item)

    def getHTMLText(self,url):
        import requests
        import string
        try:
            url = str(url)
            r= requests.get(url,timeout=5)
            r.raise_for_status()
            r.encoding = r.apparent_encoding
            return str(r.text)
        except:
            return str("链接返回错误:" + url)
if __name__==\'__main__\':
    print (\'Registering COM server...\')

    win32com.server.register.UseCommandLine(MyPyFoxCom)

###########################################
    #以上代码,另存为pyfox.py,然后执行。
    #注册完成后开关机都不会影响,修改类之后可以随时调用,不需要再注册。
    #下面语句用来清除com的使用的,打开cmd,根据你文件存放路径,改写之后直接粘贴执行即可。
    
    # python 你自己的路径\\pyfox.py --unregister

    #下面是foxtable调用代码,执行完上面代码之后,把下面的代码拷贝到foxtable命令,执行即可看到效果。
    # Dim PythonUtils As object
    # PythonUtils= CreateObject("PythonDemos.PyFoxCom")
    # Dim response As object
    # response = PythonUtils.SplitString("Hello from VB")
    # For Each Item As object In response
    #     Output.show(Item)
    # Next
    # response = PythonUtils.getHTMLText("http://www.baidu.com")
    # output.Show(response)#返回的结果是百度首页的源代码
[此贴子已经被作者于2020/3/1 20:40:51编辑过]

--  作者:shanshuizhujian
--  发布时间:2020/3/1 16:49:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:1583052491(1).png
图片点击可在新窗口打开查看

--  作者:ycli368
--  发布时间:2020/3/1 19:30:00
--  
高手在民间
--  作者:淡月斜阳
--  发布时间:2020/3/1 19:48:00
--  
好,赞
--  作者:liuzhenguo100
--  发布时间:2020/3/1 19:56:00
--  
厉害!
--  作者:wei0769
--  发布时间:2020/3/1 20:27:00
--  
好历害,可以扩展很多。有没有可能做一个二维码识别,然后在手机中调用,就不用微信扫码及打包APP了


--  作者:狐狸爸爸
--  发布时间:2020/3/1 20:27:00
--  
谢谢分享
--  作者:shanshuizhujian
--  发布时间:2020/3/1 20:52:00
--  回复:(wei0769)好历害,可以扩展很多。有没有可能做...
没理解您说的意思,能否详细说明一下,python有生产二维码的库。
--  作者:shanshuizhujian
--  发布时间:2020/3/1 20:53:00
--  回复:(狐狸爸爸)谢谢分享
谢谢!继续努力!
--  作者:zhy400137
--  发布时间:2020/3/1 22:24:00
--  
python mark