首页 > 编程语言 > python > python调用dll封装类库范例
2013
08-27

python调用dll封装类库范例

演示了封装QQ超人打码插件dll并且封装为类库.详细api文档访问 http://www.qqchaoren.net

# -*- coding:utf-8 -*-
import ctypes
import sys
from os.path import join, dirname, abspath, exists

dll = ctypes.windll.LoadLibrary(join(dirname(__file__),'dc.dll'))

class dcVerCode:
    #user QQ超人打码账号
    #pwd QQ超人打码密码
    #softId 软件ID 缺省为0,作者务必提交softId,已保证分成
    def __init__(self,user,pwd,softId="0"):
        self.user = user
        self.pwd = pwd
        self.softId = softId

    #获取账号剩余点数
    def getUserInfo(self):
        p = dll.GetUserInfo(self.user,self.pwd)
        if p:
            return ctypes.string_at(p,-1)
        return ''

    def parseResult(self,result):
        list = result.split('|')
        if len(list)==3:
            return (list[0],list[2])
        return (NULL,NULL)

    #recByte 根据图片二进制数据识别验证码,返回验证码,打码工人编号
    #buffer 图片二进制数据
    def recByte(self,buffer):
        p = dll.RecByte_A(buffer,len(buffer),self.user,self.pwd,self.softId)
        if p:
            str = ctypes.string_at(p,-1)
            return self.parseResult(str)
        return ''

    #recYZM 根据验证码路径识别,返回验证码,打码工人编号
    #path 图片路径
    def recYZM(self,path):
        p = dll.RecYZM_A(path,self.user,self.pwd,self.softId)
        if p:
            str = ctypes.string_at(p,-1)
            return self.parseResult(str)
        return ''

    #reportErr 提交识别错误验证码
    #worker 打码工人编号
    def reportErr(self,worker):
        dll.ReportError(self.user,worker)

if __name__ == '__main__':
    client = dcVerCode("user","pass","0");
    img = open('c:\\123.jpg','rb')
    buffer = img.read()
    img.close()
    print (client.getUserInfo())
    yzm,worker = client.recByte(buffer)
    print(yzm,worker)
    yzm,worker = client.recYZM("c:\\123.jpg")
    print ( yzm,worker )
    #client.reportErr(worker) 只有在验证码识别错误时才运行这个方法,恶意提交将会受到惩罚
最后编辑:
作者:NINE
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。