Python调用奥迦插件示例

import ctypes
from win32com.client import Dispatch


class AoJia:

    def __init__(self, ARegJ32DLLPath, AoJia32DLLPath):
        """
        用于初始化奥迦对象
        """

        try:
            AJ = Dispatch('AoJia.AoJiaD')
            print('本机系统中已安装奥迦插件')
        except:
            print('本机并未安装奥迦插件,使用指定路径DLL进行初始化')
            ARegJ = ctypes.windll.LoadLibrary(ARegJ32DLLPath)
            ARegJ.SetDllPathW(AoJia32DLLPath, 0)
            AJ = Dispatch('AoJia.AoJiaD')
        if AJ:
            self.AJ = AJ
            print('初始化奥迦成功,版本为:', self.VerS())
        else:
            print('初始化奥迦失败!')

    def VerS(self):
        return self.AJ.VerS()

    # 窗口
    if 1:
        def CreateWindows(self, x, y, Width, Height, EWidth, EHeight, Type=1):
            """

            :param x:
            :param y:
            :param Width:
            :param Height:
            :param EWidth:
            :param EHeight:
            :param Type:
            :return:
            """
            return self.AJ.CreateWindows(x, y, Width, Height, EWidth, EHeight, Type)

        def SetWindowState(self, Hwnd, Type=2):
            """
            设置窗口的状态
            Type: 整数,只能是下面列出的值之一:
            0: 关闭窗口
            1: 激活窗口并在桌面最前面显示,如果激活后需要进行前台输入,有的窗口还需要单击一下才能顺利进行前台输入
            2: 禁用窗口或控件接收键鼠输入
            3: 启用窗口或控件接收键鼠输入
            4: 最小化窗口,但不激活
            5: 最小化窗口,同时激活窗口
            6: 最大化窗口
            7: 恢复最小化或最大化的窗口到原来的大小和位置,但不激活
            8: 恢复最小化或最大化的窗口到原来的大小和位置,同时激活窗口
            9: 隐藏窗口,隐藏后窗口会变成不可见窗口从桌面和任务栏消失,这时用FindWindow找不到被隐藏的窗口句柄,要用FindWindowEx并把参数Visible设为0才能找到
            10: 显示隐藏的窗口,配合9使用
            11: 置顶窗口
            12: 取消置顶窗口
            13: 闪烁窗口在任务栏的按钮
            14: 使窗口获得输入焦点
            15: 结束窗口所在进程
            16: 在窗口上启用模糊效果
            17: 在窗口上关闭模糊效果
            18: 隐藏窗口在任务栏的图标
            19: 显示窗口在任务栏的图标
            :param Hwnd:
            :param Type:
            :return:
            """
            return self.AJ.SetWindowState(Hwnd, Type)

        def SetWindowTransparent(self, Hwnd, Color="E6E6E6", Tp=0, Type=0):
            """
            设置窗口的透明度以及让某种颜色的像素不显示
            :param Hwnd:
            :param Color:
            :param Tp:
            :param Type:
            :return:
            """
            return self.AJ.SetWindowTransparent(Hwnd, Color, Tp, Type)

        def DrawText(self, Hwnd, x1, y1, x2, y2, Text, Color="E6E6E6", BkColor="", Type=0):
            """
            在创建的窗口内显示文字
            :param Hwnd:
            :param x1:
            :param y1:
            :param x2:
            :param y2:
            :param Text:
            :param Color:
            :param BkColor:
            :param Type:
            :return:
            """
            return self.AJ.DrawText(Hwnd, x1, y1, x2, y2, Text, Color, BkColor, Type)


if __name__ == '__main__':
    aj = AoJia()