一个跨平台的`ChatGPT`悬浮窗工具

您所在的位置:网站首页 苍耳品种有哪些 一个跨平台的`ChatGPT`悬浮窗工具

一个跨平台的`ChatGPT`悬浮窗工具

2023-07-03 12:30| 来源: 网络整理| 查看: 265

一个跨平台的ChatGPT悬浮窗工具

使用avalonia实现的ChatGPT的工具,设计成悬浮窗,并且支持插件。

如何实现悬浮窗?

在使用avalonia实现悬浮窗也是非常的简单的。

实现我们需要将窗体设置成无边框

在Window根节点添加一下属性,想要在Linux下生效请务必添加SystemDecorations属性

ExtendClientAreaToDecorationsHint="True" ExtendClientAreaChromeHints="NoChrome" ExtendClientAreaTitleBarHeightHint="-1" SystemDecorations="None"

这样我们的窗口就设置成了无边框。

然后我们还需要将窗体的大小固定,

Height="50" MaxHeight="50" Width="{Binding Width}" MaxWidth="{Binding Width}"

高度固定,宽度绑定到ViewModel的Width属性中,默认270,

接下来给出所有代码,

只需要设置无边框并且固定大小。悬浮窗的效果就达到了。

我们看看执行效果

就这样简单的悬浮窗写好了,我们使用一下悬浮窗的搜索功能

这个就是简单的使用效果,对比其他的工具,这个悬浮窗更简洁,并且跨平台和开源。

目前的项目结构。

plugin下面的项目是默认的插件,用于搜索系统文件(未完善)

Gotrays.Suspension.Client则是实际的客户端。

Gotrays.Suspension.PlugIn则是插件定义的接口规范。

Gotrays.Update则是检查更新程序,用于更新主程序。

实现插件 plug-in

插件模块,用于扩展功能。

插件开发 1. 创建插件项目

在解决方案中创建一个类库项目,项目名称以Gotrays.Suspension.PlugIn.开头,例如Gotrays.Suspension.PlugIn.Test。 然后在项目中依赖Gotrays.Suspension.PlugIn类库。

2. 创建插件类

在项目中创建一个类,继承Gotrays.Suspension.PlugIn.PlugInBase类,例如:

using Gotrays.Suspension.PlugIn; public class SystemTools : PlugInBase { public SystemTools() { Name = "系统搜索"; ​ // 获取system.png嵌入资源的Stream ​ var stream = GetType().Assembly.GetManifestResourceStream("SystemTools.system.png"); ​ if (stream == null) return; ​ // 读取Stream到byte数组 ​ var bytes = new byte[stream.Length]; ​ var read = stream.Read(bytes, 0, bytes.Length); ​ Icon = bytes; ​ } ​ // 搜索触发 ​ public override async Task SearchAsync(string value) ​ { ​ // 打开系统搜索 ​ Process.Start("explorer.exe", "search://" + value); ​ await Task.CompletedTask; ​ } ​ ​ protected override async Task InitAsync(IServiceCollection services){ ​ // 插件首次加载时执行 ​ } ​ public override async Task BuilderServiceAsync(IServiceProvider provider) ​ { ​ // 这里可以得到服务提供者,可以通过服务提供者获取其他服务 ​ } ​ protected override void Selection() ​ { ​ // 当插件被选中时执行 ​ } ​ ​ protected override void UnSelection() ​ { ​ // 当插件被取消选中时执行 ​ } ​ ​ protected override async Task UnloadAsync() ​ { ​ // 当插件被卸载插件发生 ​ } ​ }

工具服务会进行自动发现,无需手动注册。 只需要将程序集放置在./plug-in目录下即可。 服务会在一个程序集中发现所有的插件类,并且进行注册。

按照上面的方式非常的简单就集成了插件。

开源地址

Gitee:https://gitee.com/gotrays/gotrays-suspension

Github:https://github.com/239573049/Suspension 技术交流群:737776595



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3