wallpaper_set_subscriptions

此函数从 Companion 应用程序订阅给定的指标。用于获取实时系统信息,并启用鼠标输入,动态壁纸默认禁用鼠标输入。

重要 See this guide for making a basic Live Wallpaper and (optionally) setting up the Companion app on Windows.

注意 目标计算机上的图形驱动程序必须是最新的,GPU 指标才能正常工作。

注意 每次调用此函数都会取消之前所有活动的订阅,因此只有上次调用中包含的订阅仍保持活动状态。

论点

您向该函数传递一个数组,其中包含以下一个或多个字符串:"desktop_mouse""cpu""gpu""battery"" 内存 "" 磁盘 "" 网络 "" 音频 "

"desktop_mouse" 为您的动态壁纸启用鼠标输入。其他选项允许触发 壁纸订阅数据 事件,您可以在其中接收有关您选择订阅的指标的数据。

接收指标

壁纸订阅数据 事件中,您将收到订阅指标的更新,大约每秒一次,音频除外,每秒十次。

该事件将包含一个 wallpaper_subscription_data 变量,该变量是一个 结构体 ,包含以下成员:

wallpaper_subscription_data 结构 wallpaper_subscription_data 结构

如果无法从系统检索某些信息,则其相应的变量将不会出现在该结构中。如果您尝试访问不存在的变量,可能会导致崩溃。为了防止这种情况发生,请在访问变量之前使用 struct_exists 检查结构中是否存在变量。

 

 

语法:

wallpaper_set_subscriptions(subscriptions);

参数类型描述
subscriptionsArray包含字符串的数组,这些字符串是您要订阅的指标

 

返回:

N/A

 

例子:

// Create Event
wallpaper_set_subscriptions(["desktop_mouse", "cpu"]);


// Wallpaper Subscription Data Event
var _cpus = wallpaper_subscription_data.cpu;

file = file_text_open_append("sysinfo.txt");
file_text_writeln(file);
file_text_write_string(file, string(date_current_datetime()));
file_text_write_string(file, $"\nCPU count: {array_length(_cpus)}");

array_foreach(_cpus, function(_cpu, _num)
{
    if (!struct_exists(_cpu, "usage_pct")) return;
    var _str = $"\nCPU {_num} load: {_cpu.usage_pct}%";
    file_text_write_string(file, _str);
});

file_text_close(file);

第一行在 Create 事件中运行,启用鼠标输入并订阅 CPU 指标。

在壁纸订阅数据事件中,它获取 CPU 的设备数组,并打开一个文本文件以写入指标。

在该文件中,它写入当前日期时间、CPU 设备计数 (即数组的长度),然后继续写入数组中每个 CPU 设备的负载百分比。

此代码在 工作目录 中的 sysinfo.txt 文件中生成以下文本:

45245.33
CPU count: 1
CPU 0 load: 3%
45245.33
CPU count: 1
CPU 0 load: 3%
45245.33
CPU count: 1
CPU 0 load: 3%