# 桌面实时天气 - Rainmeter皮肤区 - 雨滴社区 - Powered by Discuz!
 找回密码
 点击注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2928|回复: 8

[原创作品] 桌面实时天气

[复制链接]

签到天数: 32 天

[LV.5]常住居民I

 楼主| 发表于 2022-7-20 18:20:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?点击注册

x
本帖最后由 0x1313038 于 2022-7-20 18:23 编辑

先放个效果
效果图.jpg

/零 简介
    这是一个显示实时天气的桌面插件,天气信息来自于和风天气API。

/壹 工作原理
    简述:每次打开或更新天气信息时,插件运行Lua脚本,运行脚本时首先连接和风天气API获取天气JSON数据,然后解析出有用的数据,最后更新插件UI。整个过程一般不超过1s。
    详细:初始化天气插件时,首先运行Lua脚本 "LuaScript.lua",脚本中后台运行从和风天气API获取天气数据的程序 "GetWeather.exe",该程序使用C#编写。"GetWeather.exe" 首先从读取 "Key.txt" 和风天气API的Key,该Key需要用户自己获取,和风天气提供免费非商业的Key。接着 "GetWeather.exe" 读取位置信息,位置信息存储在 "LocationID.txt" 文件中。"GetWeather.exe"前两个步骤所需文件任意一个不存在都将报错且无法获取天气信息。然后 "GetWeather.exe"解析和风天气API返回的数据并写入文件。在 "GetWeather.exe"获取到数据之前,Lua脚本需一直等待。最后Lua脚本读取 "GetWeather.exe" 生成的文件、解析文件并更新插件UI。
/贰 目录结构
屏幕截图 2022-07-20 171633.png
/叁 参数说明
    Weather.ini
        第2行:Update=60000    皮肤刷新间隔,单位毫秒,1000为1s刷新一次。住:和风天气每天允许获取10000次数据。
        第13行:ScreenScale=2    皮肤尺寸缩放
屏幕截图 2022-07-20 172623.png
    Key.txt
        和风天气API的key。获取方法:
        开发文档:实时天气 - API | 和风天气开发平台(qweather.com)
1.png
2.png
        没有账户请自行注册。
3.png
4.png
5.png
6.png
复制Key存入指定目录下即可。
    LocationID.txt
        存储地理位置的文件,可以通过 “GetLocation.exe” 获取,如果其获取的信息不准确,则可以通过查询“中国城市-ID表 - 和风天气.csv” 文件手动修改。“中国城市-ID表 - 和风天气.csv” 文件由和风天气API提供。

肆/ 写在最后
    附件中两个.rar压缩包为GetWeather.exe和GetLocation.exe的Visual Studio工程文件,基于C#编写。由于我刚刚接触C#,写的代码并不好,欢迎C#大神帮忙完善。
    Rainmeter刷新组件的时间过长有可能导致Rainmeter崩溃,主要是执行Lua脚本的时间过长导致,修改时注意这一点。
    存在的问题:Rainmeter每次刷新控件时,都是在Lua脚本中调用GetWeather.exe并等待其返回数据,在Lua脚本中可以使用os.execute()打开程序,但是os.execute()本质上是执行cmd命令,因此,这样做会在每次刷新控件时都会闪出一个cmd的黑色窗口。因此,本设计中使用Rainmeter提供的SKIN:BANG()进行刷新。但是,每次刷新Luau程序都要等待GetWeather.exe返回完整的数据,而Lua标准库中似乎并不包含线程等待的函数,因此,本设计中使用一个循环结构来等待,这样做会消耗大量的CPU资源(但影响时间较短)。大家如果有什么更好的方法,欢迎在评论区中讨论。







桌面实时天气_4.0.rmskin

709.02 KB, 下载次数: 15, 下载积分: 活跃值 -1 点

售价: 1 点活跃值  [记录]

Visual Studio - GetLocation.rar

99.28 KB, 下载次数: 2, 下载积分: 活跃值 -1 点

售价: 1 点活跃值  [记录]

Visual Studio - GetWeather.rar

325.38 KB, 下载次数: 2, 下载积分: 活跃值 -1 点

售价: 1 点活跃值  [记录]

回复

使用道具 举报

签到天数: 77 天

[LV.6]常住居民II

发表于 2022-7-23 14:40:19 | 显示全部楼层
支持了。。。。谢谢资源
回复

使用道具 举报

签到天数: 1 天

[LV.1]初来乍到

发表于 2022-7-27 11:50:44 | 显示全部楼层
真好,tx和cnx去死
回复

使用道具 举报

签到天数: 1 天

[LV.1]初来乍到

发表于 2022-8-8 11:46:40 | 显示全部楼层
感谢作者分享
回复

使用道具 举报

签到天数: 1 天

[LV.1]初来乍到

发表于 2022-8-10 18:38:35 | 显示全部楼层
岁数大了,整不会了
回复

使用道具 举报

签到天数: 2 天

[LV.1]初来乍到

发表于 2022-8-10 20:08:37 | 显示全部楼层
俺也一样,岁数大了看不懂了 呜呜呜……
回复

使用道具 举报

签到天数: 7 天

[LV.3]偶尔看看II

发表于 2022-8-30 20:13:04 | 显示全部楼层
找能用的天气插件中······
回复

使用道具 举报

签到天数: 15 天

[LV.4]偶尔看看III

发表于 2022-9-1 06:58:31 | 显示全部楼层
看来适合动手能力强的人用啊!
回复

使用道具 举报

签到天数: 4 天

[LV.2]偶尔看看I

发表于 2022-9-11 19:49:37 | 显示全部楼层
感谢分享!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点击注册

本版积分规则

快速回复 返回顶部 返回列表