以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 让狐表再插上python的翅膀 (http://foxtable.net/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.html和http://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 |