Show / Hide Table of Contents

    菜单和悬浮窗状态

    事件处理程序

    菜单和悬浮窗状态的事件处理程序必须为静态方法。

    菜单项被点击

    菜单项被点击事件没有任何形参,也没有返回值。

    static void OnMenuItemClicked();
    

    悬浮窗状态更新

    悬浮窗状态更新事件没有任何形参,返回一个字符串。返回的字符串是以 Base64 编码的状态数据。

    static string OnStatusUpdating();
    

    通过 Status 类和 Encode() 方法可以方便地创建状态数据并进行编码。

    static string OnStatusUpdating()
    {
        return new HuajiTech.CoolQ.Status(
          value: "值",
          unit: "单位",
          color: HuajiTech.CoolQ.StatusColor.Green
        ).Encode();
    }
    

    将托管方法导出为非托管方法

    上面创建的事件处理程序是托管方法,但酷Q只能调用以 StdCall 导出的非托管方法。 通过 HuajiTech.UnmanagedExports.DllExportAttribute 可以标记要导出的方法。

    [HuajiTech.UnmanagedExports.DllExport]
    static string OnStatusUpdating();
    

    通过设置 HuajiTech.UnmanagedExports.DllExportAttribute.EntryPoint 属性,可以自定义导出后的方法的入口点名称。 如果 EntryPoint 属性为 null,将会使用方法名称作为入口点名称。 不能定义重复的入口点名称。

    [HuajiTech.UnmanagedExports.DllExport(EntryPoint = "OnMenuItemClicked")]
    static void OpenConfiguration();
    

    配置 app.json

    在 app.json 中的 status 或 menu 下增加相应格式的元素,并将 function 的值设为导出的入口点名称。

    "menu": [
      {
        "name": "菜单项",
        "function": "OnMenuItemClicked"
      }
    ],
    "status": [
      {
        "id": 1,
        "name": "悬浮窗",
        "title": "FLOAT",
        "function": "OnStatusUpdating",
        "period": "1000"
      }
    ]
    
    • 改善此文档
    Back to top 本文档使用 CC BY-NC-SA 4.0 进行许可。