喜欢折腾电脑的武术爱好者,怕忘记怎么折腾的,记下笔记,有些事情不吐不快,写下随笔,找到一些折腾教程,记录一下

admin
admin

以前安装好istoreos之后,直接执行命令:vi /etc/config/network

 

通过vi命令编辑网络配置文件,把LAN口的IP地址改为自己想要的即可。

 

可是最近发现通过这样的方式修改已经不行了,修改之后,配置文件立马就会恢复到之前的状态。尝试通过istoreos自带的quickstart命令修改LAN口IP,以及进入WEB界面之后在接口菜单下修改LAN口IP,都是一样。修改成功之后,立马又恢复成之前的状态。

 

各种折腾之后发现,虚拟机只有一个网卡的时候,直接修改就没问题。要是有两个网卡,一个WAN口,一个LAN口,这时候修改WAN口配置就可以,LAN口的配置就会出现这种改成功了,但是又马上恢复成之前状态的情况。

 

不死心的我又继续折腾。最后才发现,LAN口IP必须用网络配置向导的旁路由模式进行配置。通过旁路由模式配置完之后,如果再修改,直接在WEB界面的接口菜单口修改就不会有任何问题。

 

唉~~,太久没关注istoreos了,不知道是不是出于易用性的考虑才这样做的。让原本习惯了直接修改配置文件的用户有点措手不及。

2026-07-10
赞
评论
登录后可以点赞和评论
admin
admin

以前一直用Todesk这款远程控制软件,免费的时候用着还是挺省心的,设置也简单,可以远程开机,后来要收费了,免费版本的甚至都无法稳定的传文件,就开始找替代软件,最后选择了网易的UU远程。UU远程用着也挺不错,就是有些功能还稍微差点意思。比如,PC一直到现在都还没有观看模式,也不支持Linux系统。

 

最近把台式电脑卖了,换成了AMD的迷你主机。带双网口的天钡GEM12 PRO迷你主机。我发现UU远程那个远程开机启动功能的开关就无法打开了,明明已经在BIOS里面开启了网卡唤醒,也关掉了系统的快速启动,网卡驱动也是最新版本的,这个功能开关就是无法打开,只要点击打开,就会提示我:本设备的网卡不支持网络唤醒,无法通过远程开机启动。我通过UU远程官网的文档查询了一下,发现我这网卡是支持网络唤醒的。

 

折腾了一通之后,可以通过istoreos的网络唤醒功能成功唤醒。而UU远程的那个远程开机启动的功能仍然无法打开。无奈之下,只好问了一下AI,通过AI的提示,找到了开启的方法。

 

曲折的过程就不记录了,只记录唯一的解决方法。修改注册表。

 

UU远程检测"允许此设备唤醒计算机"时,实际读取的是网卡注册表项中的 DeviceWakeUpEnable 值。

 

1. 打开注册表编辑器,导航到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}

 

2. 找到你的有线网卡对应的子项(通过 DriverDesc 确认),比如我的网卡是英特尔的I226V,那么这个DriverDesc的值就是:Intel(R) Ethernet Controller I226-V,其实就是在设备管理器中看到的网卡名称。

 

3. 在该子项下,找到或新建一个名为 DeviceWakeUpEnable 的 DWORD (32位) 值,并将数值设为1。

 

4. 重启电脑。

 

等电脑重启完成之后,就可以打开这个功能了。

 

这里有个坑需要特别注意,就是在打开这个功能的时候会弹出一个提示,千万不要点“开始配置”进入自动配置流程,因为自动配置流程会检测网卡状态,因为没有电源管理选项,会被误判为没有有线网卡,导致无法打开这个功能,而且就算重启电脑,甚至是重装UU远程软件都不行,这时候需要删掉之前配置好的注册表项,再重新配置一次。只要点“我确认已完成配置”即可。

2026-07-08
赞
评论
登录后可以点赞和评论
admin
admin

之前有个想法,通过windows安装模拟器运行电视盒子的软件,把windows电脑当成一个电视盒子来用。模拟器安装好了,自动启动也设置好了,结果发现遥控在模拟器中无法返回,几乎所有的安卓模拟器都是一样。反而是windows系统对遥控的这些按键有反应。这就尴尬了。

 

那么安装安卓子系统,直接在windows10里面运行安卓程序呢?说干就干。

 

开启了BIOS中的虚拟化,安装了系统组件中的hyper-V组件。下载好了适用于windows10的WSA安装包。运行安装,安装完成之后在运行时提示“请确保在BIOS中启用了虚拟化,并且为你的电脑启用了虚拟机平台”,子系统无法正常运行。

 

度娘一顿操作,最终才发现是因为安装了360手机助手的原因。

 

出现这样的提示,原因有几点:

1.安装了其他虚拟化软件

2.安装了模拟器

3.未开启Hyper-V

 

这其中的“其他虚拟化软件”包括,但不限于,vmare,virtual box,还有应用宝、360手机助手这样的软件。模拟器的话就很清楚了,什么夜神模拟器,MUMU模拟器,联想模拟器之类的都算。

 

Hyper-V打开之后要检查一下其他的几项:

1.windows虚拟机监控程序平台

2.适用于Linux的windows子系统

3.虚拟机平台

以上三个组件有没有打开,没打开的都打开。

 

最后,卸载了应用宝、360手机助手之类的软件之后要重启,并在以管理员身份运行的CMD或power shell里执行以下命令:

bcdedit /set /hypervisorlaunchtype auto

 

这命令的意思是设置Hyper-V虚拟化启动类型为自动。

 

至此大功告成!

 

不过,说实在话,在windows里面安装安卓应用,体验真的不好,还不如模拟器。我这安装好之后没玩几下就卸载了。看来想通过windows把电脑改成电视盒子还真的走不通这条路,至少我现在的水平走不通。老老实实花钱买个好点的盒子算了。

2025-01-12
赞
评论
登录后可以点赞和评论
admin
admin

飞牛OS虽然也是Linux底层,但是经过深度定制过的,为了安全等方面考虑,与原生的Linux还是有些不太一样。例如,用Docker部署了sun-panel之后,因为无法访问到系统内的/var/run/docker.sock文件,无法在Docker中挂载,导致sun-panel中Docker的状态无法显示。

 

其实要解决这个问题也挺简单的,只需要三步:

1.在飞牛的文件管理中建立一个可以被Docker访问得到的文件夹,用来存放docker.sock文件。

2.进入SSH终端,用软链接的命令将/var/run/docker.sock文件链接到上一步建立的文件夹中。

3.在飞牛的Docker管理中修改sun-panel的配置,将docker能访问到的docker.sock文件挂载到容器的/var/run/docker.sock位置即可。

 

第一步的文件夹自行建立,以我自己为例,我是在“我的文件”中建立了一个docker文件夹,在这个docker文件夹中再建立了一个sock文件夹用来存放docker.sock文件,如果觉得麻烦,也可以直接只建一个docker文件夹,甚至不建文件夹也行,只要docker能访问到的位置都可以。

 

第二步还是以我自己的为例,在SSH中执行软链接命令:

ln -s /var/run/docker.sock /vol1/1000/Docker/sock/docker.sock

说明:ln是软链接命令,-s是参数,/var/run/docker.sock就是需要进行软链接的文件,/vol1/1000/Docker/sock/docker.sock就是最后软链接产生出来的文件路径。飞牛的文件管理器里面“我的文件”路径在终端中对应的是/vol1/1000,后面的docker/sock这两个文件夹都是我自己建的,最终这个docker.sock文件被链接到了我所建立的sock目录下了。

 

第三步,修改sun-panel容器的设置,在原来的基础上再增加一个存储位置,第一个位置就不用多说了,直接选择docker.sock文件就是,第二个位置当然就是填写/var/run/docker.sock了。

 

做完这些,再刷新sun-panel,就可以发现docker状态已经能正常显示了。

 

如果觉得软链接的位置不对,想要修改的话,建议使用下面的命令删除软链接:

unlink /vol1/1000/Docker/sock/docker.sock

说明:这个删除软链接的路径也是以我自己建立的路戏为例子,自行更改。用此命令不会影响到系统中的/var/run/docker.sock文件。因为软链接就类似于windows中的快捷方式一样。

2025-01-10
赞
评论
登录后可以点赞和评论
admin
admin

小棉袄满三岁的第二天。

 

下午四点多,我和老婆正在将堆放在院子里的一些木柴搬进柴房,并且要将这些木柴码放好,不是胡乱扔在一堆。我负责将木柴搬进柴房,我老婆负责将这些木柴码放好。

 

当我搬完一堆木柴之后,从柴房里出来,准备重新再装一堆搬进柴房的时候,看到小棉袄就在院子里那堆木柴边上玩扭扭车。我走过去,走到了她面前的时候说了一句:“被蚊子咬了一下,好痒。”说这句话的时候我还向我左手被蚊子咬起来一个包的地方看了一眼,回过头看到小棉袄,发现她正仰着头,一直看着我。然后我也就这样看着她,两秒后,小棉袄就骑着她的扭扭车往客厅方向去了。当她骑到房檐前的时候,扭扭车无法再前进了,她就扔下她的扭扭车,跑进房子里面。

 

我只以为是她像平常一样,玩了一会扭扭车后不想玩了,跑到屋里看电视或者玩其他玩具去了,没有在意。当看到她进到屋内之后,我也转过身继续将装好的木柴搬进柴房。我将这堆木柴刚搬进柴房的时候,发现小棉袄也向柴房走来了。

 

当时我以为她又过来找我们俩,想让我俩陪她玩。直到她仰着头,踮着小脚,用一只小手来拉我的左手,一边拉一边嘴里叫着:“爸爸,来!爸爸,来!”我才发现她的另一只手上捏着那支绿色的药水(在母婴店给她买的,蚊虫叮咬之后涂上一点可以止痒,消肿,也可以驱蚊),这里我才意识到她是想给我涂这个药水。我停下手里的活,将身子微微下蹲,终于,她借着门外散进到柴房里微弱的亮光,将止痒药水涂在我被蚊子咬了之后长出的包上。涂完药之后,她又果断出去,继续玩她的扭扭车。

 

一直以来,小棉袄都不太喜欢我主动给她抱抱,有点啥事也都让她妈妈打我,让我感觉是一件漏风的小棉袄。这一波操作,我是真的没有想到。把我整不会了,想哭,但又不想让老婆觉得我娇情,只能放声哈哈大笑。笑了一会之后,眼泪还是止不住的流出来,让人误让为是笑得眼泪都出来了,从而缓解我的尴尬。

2024-11-05
赞
评论
登录后可以点赞和评论
admin
admin

去年我把家里的那台HP 800 G2 SFF的小主机托朋友卖掉了,前段时间他和我说,这个小主机遇到一个奇怪的问题,就是开机非常慢,要十几分钟。后来小主机拿回到我朋友的店里面,刚好我也在,我就看了一下。发现这个问题不是开机慢,而是到了用户登录界面,即将进入桌面的时候,一直转圈圈,大概真的要几分钟。经过后面的排查,大概要140多秒,也就是两分多钟。虽然时间不是很长,但对于固态硬盘来说,这个时间确实是长了不少。

 

这个问题只会出现在一个用户中,在进入桌面的时候一直转圈圈,要转几分钟,有时候还无法成功登录,并提示“Group Policy Client服务未能登录”,新建一个用户则又完全正常。这说明,这个问题是用户的相关文件或配置有问题。

 

因为没有遇到过,后过就度娘了一下。搜索那个Group Policy Client服务未能登录的提示,并不能解决问题,因为根本原因并不在此。

 

后来搜索进桌面要很久才找到一点线索。说是因为用户缓存文件太多的原因导致的。

 

于是就试了一下,进入用户的缓存文件夹temp目录,发现有大量的缓存文件夹和文件,总共有573000个。这些文件都是随机的字母文件名,从长度来看比较有规律,应该是某款软件生成的。随便查看了一个文件的属性,显示是某电脑管家文件。

 

好嘛,竟然是某电脑管家的问题,立即卸载,并删除全部这些缓存文件和文件夹,问题解决。

2024-10-12
赞
评论
登录后可以点赞和评论
admin
admin

金邦GeIL型号GH330的这款U盘虽然便宜,但问题是真多。偶尔用用没事,经常要用的话真不推荐。

 

去年19.9元买了64G的,到现在刚好一年的时间。刚开始用着还可以,只是接口很紧,插拔都很费劲。

 

最近这段时间经常出现突然掉盘的情况,有时候掉盘还导致系统的资源管理器卡死,重启都重启不了,必须强行按电源键关机,这就很讨厌了。

 

买的时候说是USB3.2的,其实USB3.0和USB3.2其实是同一个东西,只是改名字了而已,另外还有好几个名字USB3.1 gen1,USB3.1 gen2,USB3.2 gen1,USB3.2 gen2,都是一样。

 

另外,还有个问题,U盘启动我用的是Ventoy,每次用CMDPE安装完系统从CMDPE重启后就无法进入Ventoy了,要重新升级Ventoy才能正常引导,不知道这个是U盘的问题还是CMDPE的问题,还得再排查一下。

 

不管怎么说,哪怕是因为掉盘的这个问题,都要抽空再换一款U盘,或者干脆买个固态的移动硬盘盒,加一条2230的固态硬盘,拿来当U盘用。

2024-10-12
赞
评论
登录后可以点赞和评论
admin
admin

最近出现一款非常不错的NAS系统,名为飞牛私有云系统,也叫FNOS

 

使用了几天,感觉很不错,对于我这种需求不高的用户来说,基本上都可以满足我的需求了。

 

除了有NAS最基本的文件管理和共享功能之外,还有飞牛影视和飞牛相册,就连Docker也有。

 

这样的话,我是不是可以将istoreos里面跑的几款Docker容器也都安装到FNOS中来了?

 

打开FNOS的Docker管理界面,发现和istoreos的不太一样,已经习惯了istoreos那种复制粘贴命令的方式来部署Docker应用,在FNOS中还不太熟悉,主要是对Docker不太熟悉。

 

因为FNOS的Docker实际上是把Docker的一些参数分开成各种选项,只要填上对应的选项其实就OK了。

 

例如,我想部署sun-panel,只要在镜像中填上hslr/sun-panel:latest就可以成功Pull到应用的镜像,拉取成功镜像之后再添加容器,填好端口,存储位置,命令这几项,如果没问题的话,容器就可以成功运行了。

 

那么sun-panel在添加容器的过程中,端口需要填上3002,这是默认部署的端口号,可以改成自己想要的端口号。存储位置可以选择NAS中的位置,最主要的是后面的装载路径,其实这个装载路径就是挂载位置。

 

如果用Docker的命令的话是这样的:

-v ~/docker_data/sun-panel/conf:/app/conf

 

这个/docker_data/sun-panel/conf就是存储位置,可以用鼠标点击在NAS中选择一个你想要的位置,后面的/app/conf就是需要手动填写的装载路径了,填好之后再下一步,容器就创建成功,并且正常运行。

 

安装sun-panel这样的还算是比较简单的,因为端口和存储位置这都是很明显的可以看出来要怎么填,像cloudflare这种,既没有端口也不需要存储位置,但是有一串token和参数的,就要填写到命令中了。

 

从cloudflare的后台获取到的Docker部署命令是这样的:

docker run tunnel --no-autoupdate run --token xxxxxxxxx

 

xxxxxxxxx代表的是一长串token值,如果是把这一整段代码一字不漏的填入到命令中是无法正常运行的,容器还是可以被成功创建,就是会一直不停的重启。所以,这段代码需要修改,不能全部填写到命令里面,参考istoreos已经成功运行的Docker容器参数后得到如下命令内容:

tunnel --no-autoupdate run --token xxxxxxxxx

 

这样的话,只要将获取到的Docker部置命令去掉最开始的docker run就可以了,我想是不是因为命令其实就代表了docker run,要是再在命令的内容中填上docker run,后面的内容就无法识别了,所以在日志中查看的时候,就会提示没有指定任何参数。去掉docker run之后,参数就能被正常识别,容器也就能成功运行了。如果以后遇到类似的容器,就按这个方法来部署,应该是没有问题的。

 

不过,首先要从cloudflare/cloudflared:latest拉取镜像,再创建容器并运行。

 

当我安装uptime-kuma的时候,通过louislam/uptime-kuma拉取完镜像,再部署容器的时候惊奇的发现,只要选择存储位置就行了,端口和命令中的内容都自动填好了,这真的是太棒了。FNOS真的让人惊喜不断。期待越来越好,希望早日用上正式版的系统。到时候就可以把istoreos丢掉了。

 

原本是想做软路由的,一直没有发现这东西对我有什么用,我也就不知道要用来干什么,最后只用来跑跑Docker应用,现在NAS系统中就能跑Docker应用的话,软路由系统也就没有存在的必要了。

2024-09-05
赞
评论
登录后可以点赞和评论
admin
admin

以下内容来自与末大佬的博客:blog.ymz.icu

 

其他的内容没有试过,只弄了一个飘雪花的效果,电脑上和我的魅族16th手机上都还可以,但是我那台老苹果iphone7Plus性能就太差了,有了这个效果会很卡,不流畅,所以又取消了。其他一些因为没有更好的素材,就暂时没有弄。

 

飘雪效果中有个定义生成一片雪花的毫秒数,建议不低于100,但是我修改成了500,在老苹果手机上还是卡顿,不流畅。没办法,这种效果是我无法接受的,只能去掉了。

 

以下是JS美化相关的内容:

 

 

多js加载

用于加载多个js文件
加载多js应该还有很多办法
我这不是唯一办法,你们也可以自行发挥
用的js文件很少的话可以略过多js加载

 

// 定义函数 loadMultipleResources,用于加载多个资源
function loadMultipleResources(resources, callback) {
  var loadedCount = 0;  // 已加载的资源计数

  // 定义内部函数 loadResource,用于加载单个资源
  function loadResource(resource, index) {
    var element;

    if (resource.endsWith('.js')) {
      // 如果资源是 JavaScript 文件
      element = document.createElement('script');  // 创建 script 元素
      element.src = resource;  // 设置 script 元素的 src 属性为资源路径
      element.onload = function () {
        loadedCount++;  // 每次资源加载完成时增加计数
        if (loadedCount === resources.length) {
          // 如果所有文件都已加载完成,则执行回调函数
          callback();
        }
      };
    }

    document.head.appendChild(element);  // 将创建的 script 元素添加到文档头部
  }

  // 遍历资源数组,逐个加载资源
  for (var i = 0; i < resources.length; i++) {
    loadResource(resources[i], i);
  }
}

// 定义一个包含多个资源路径的数组
var resources = [
  // jquery库
  'https://myhkw.cn/player/js/jquery.min.js',
  // 也可以使用本地jquery库
  //'./custom/jquery.min.js',
   // mp4动态背景
  './custom/Random video bg.js',
  // 页面雪花特效
  './custom/Snowflakes.js',
  // 鼠标点击特效
  './custom/Mouse.js',
  // 音乐播放器
  './custom/Music player.js',
  // 网页计时器
  './custom/Sitetime.js',
];

// 调用 loadMultipleResources 函数,传入资源数组和回调函数
loadMultipleResources(resources, function () {
  // 所有资源加载完成后执行的回调函数
  console.log('所有资源已加载');
});

 


MP4动态视频背景

使用js实现的动态视频背景,由一群 jackloves111 提供

document.addEventListener('DOMContentLoaded', (event) => {  
    // 用于添加视频背景的函数  
    const addVideoBackground = (wallpaperDiv) => {  
        // 创建video元素  
        const video = document.createElement('video');  
  
        // 设置视频属性  
        video.autoplay = true; // 使用属性而不是setAttribute,因为autoplay是一个布尔属性  
        video.loop = true;  
        video.muted = true;  
        video.playsInline = true; // 注意这里是驼峰式写法,但在HTML中应使用playsinline  
  
        // 应用CSS样式到video元素  
        video.style.position = 'absolute';  
        video.style.top = '0';  
        video.style.left = '0';  
        video.style.width = '100%';  
        video.style.height = '100%';  
        video.style.objectFit = 'cover';  
  
        // 定义多个视频源  
        const videoSources = [  
            '/uploads/%E5%8A%A8%E6%80%81%E5%A3%81%E7%BA%B8-01.mp4',  
            '/uploads/%E5%8A%A8%E6%80%81%E5%A3%81%E7%BA%B8-02.mp4',
            '/uploads/%E5%8A%A8%E6%80%81%E5%A3%81%E7%BA%B8-03.mp4',
            '/uploads/%E5%8A%A8%E6%80%81%E5%A3%81%E7%BA%B8-04.mp4',
            '/uploads/%E5%8A%A8%E6%80%81%E5%A3%81%E7%BA%B8-05.mp4',
            // '/uploads/%E5%8A%A8%E6%80%81%E5%A3%81%E7%BA%B8-06.mp4',
            // '/uploads/%E5%8A%A8%E6%80%81%E5%A3%81%E7%BA%B8-07.mp4',
            // '/uploads/%E5%8A%A8%E6%80%81%E5%A3%81%E7%BA%B8-08.mp4',
            // '/uploads/%E5%8A%A8%E6%80%81%E5%A3%81%E7%BA%B8-09.mp4'
            // 在这里可以添加更多的视频源  
        ];  
  
        // 从视频源数组中随机选择一个  
        const randomSource = videoSources[Math.floor(Math.random() * videoSources.length)];  
  
        // 创建source元素并设置随机选择的视频源  
        const source = document.createElement('source');  
        source.src = randomSource;  
        source.type = 'video/mp4';  
  
        // 将source元素添加到video元素中  
        video.appendChild(source);  
  
        // 监听视频加载元数据事件,尝试播放视频  
        video.addEventListener('loadedmetadata', () => {  
            video.play().catch((error) => {  
                // 如果播放失败,可以在这里处理错误,例如显示一个备用图片或消息  
                console.error('视频播放失败:', error);  
            });  
        });  
  
        // 将video元素添加到指定的wallpaperDiv中  
        wallpaperDiv.appendChild(video);  
    };  
  
    // 使用MutationObserver监视DOM变化  
    const observer = new MutationObserver((mutationsList, observer) => {  
        // 查找匹配的.cover.wallpaper元素  
        const wallpaperDiv = document.querySelector('.cover.wallpaper');  
  
        if (wallpaperDiv && !wallpaperDiv.querySelector('video')) {  
            // 添加视频背景  
            addVideoBackground(wallpaperDiv);  
            // 注意:我们不再断开观察者,以便它能够继续监视未来的变化  
        }  
    });  
  
    // 启动观察者监视document.body的变化  
    observer.observe(document.body, { childList: true, subtree: true });  
});

 


页面雪花特效

不建议雪花生成毫秒数低于100
可能会对移动端或老旧设备造成卡顿

function snow() {
    //  1、定义一片雪花模板
    var flake = document.createElement('div');
    // 定义雪花字符 ❉❅❆✻✼❈❊✥✺
    flake.innerHTML = '❅';
    flake.style.cssText = 'position:absolute;color:#fff;';

    //获取页面的高度 相当于雪花下落结束时Y轴的位置
    var documentHieght = window.innerHeight;
    //获取页面的宽度,利用这个数来算出,雪花开始时left的值
    var documentWidth = window.innerWidth;

    //定义生成一片雪花的毫秒数,不建议低于100
    var millisec =200;
    //2、设置第一个定时器,周期性定时器,每隔一段时间(millisec)生成一片雪花;
    setInterval(function() { //页面加载之后,定时器就开始工作
        //随机生成雪花下落 开始 时left的值,相当于开始时X轴的位置
        var startLeft = Math.random() * documentWidth;

        //随机生成雪花下落 结束 时left的值,相当于结束时X轴的位置
        var endLeft = Math.random() * documentWidth;

        //随机生成雪花大小
        var flakeSize = 3 + 20 * Math.random();

        //随机生成雪花下落持续时间,时间越大下落越慢
        var durationTime = 6000 + 10000 * Math.random();

        //随机生成雪花下落 开始 时的透明度
        var startOpacity = 0.7 + 0.3 * Math.random();

        //随机生成雪花下落 结束 时的透明度
        var endOpacity = 0.2 + 0.2 * Math.random();

        //克隆一个雪花模板
        var cloneFlake = flake.cloneNode(true);

        //第一次修改样式,定义克隆出来的雪花的样式
        cloneFlake.style.cssText += `
                left: ${startLeft}px;
                opacity: ${startOpacity};
                font-size:${flakeSize}px;
                top:-25px;
                    transition:${durationTime}ms;`;

        //拼接到页面中
        document.body.appendChild(cloneFlake);

        //设置第二个定时器,一次性定时器,
        //当第一个定时器生成雪花,并在页面上渲染出来后,修改雪花的样式,让雪花动起来;
        setTimeout(function() {
            //第二次修改样式
            cloneFlake.style.cssText += `
                        left: ${endLeft}px;
                        top:${documentHieght}px;
                        opacity:${endOpacity};`;

            //4、设置第三个定时器,当雪花落下后,删除雪花。
            setTimeout(function() {
                cloneFlake.remove();
            }, durationTime);
        }, 0);

    }, millisec);
}
snow();

 


点击特效

点击特效是出自我的与末的个人引导页

class Circle {
    constructor({ origin, speed, color, angle, context }) {
        this.origin = origin; // 初始位置
        this.position = { ...this.origin }; // 当前位置
        this.color = color; // 颜色
        this.speed = speed; // 速度
        this.angle = angle; // 角度
        this.context = context; // 绘制上下文
        this.renderCount = 0; // 渲染计数
    }

    draw() {
        // 绘制圆形
        this.context.fillStyle = this.color;
        this.context.beginPath();
        this.context.arc(this.position.x, this.position.y, 2, 0, Math.PI * 2);
        this.context.fill();
    }

    move() {
        // 移动圆形
        this.position.x = (Math.sin(this.angle) * this.speed) + this.position.x;
        this.position.y = (Math.cos(this.angle) * this.speed) + this.position.y + (this.renderCount * 0.3);
        this.renderCount++;
    }
}

class Boom {
    constructor({ origin, context, circleCount = 10, area }) {
        this.origin = origin; // 初始位置
        this.context = context; // 绘制上下文
        this.circleCount = circleCount; // 圆形数量
        this.area = area; // 区域
        this.stop = false; // 停止标志
        this.circles = []; // 圆形数组
    }

    randomArray(range) {
        // 从数组中随机取值
        const length = range.length;
        const randomIndex = Math.floor(length * Math.random());
        return range[randomIndex];
    }

    randomColor() {
        // 随机生成颜色
        const range = ['8', '9', 'A', 'B', 'C', 'D', 'E', 'F'];
        return '#' + this.randomArray(range) + this.randomArray(range) + this.randomArray(range) + this.randomArray(range) + this.randomArray(range) + this.randomArray(range);
    }

    randomRange(start, end) {
        // 在范围内生成随机数
        return (end - start) * Math.random() + start;
    }

    init() {
        // 初始化Boom对象
        for (let i = 0; i < this.circleCount; i++) {
            const circle = new Circle({
                context: this.context,
                origin: this.origin,
                color: this.randomColor(),
                angle: this.randomRange(Math.PI - 1, Math.PI + 1),
                speed: this.randomRange(1, 6)
            });
            this.circles.push(circle);
        }
    }

    move() {
        // 移动所有圆形,并检测是否超出区域
        this.circles.forEach((circle, index) => {
            if (circle.position.x > this.area.width || circle.position.y > this.area.height) {
                return this.circles.splice(index, 1);
            }
            circle.move();
        });
        if (this.circles.length === 0) {
            this.stop = true;
        }
    }

    draw() {
        // 绘制所有圆形
        this.circles.forEach(circle => circle.draw());
    }
}

class CursorSpecialEffects {
    constructor() {
        // 鼠标特效主类
        this.computerCanvas = document.createElement('canvas'); // 计算用Canvas
        this.renderCanvas = document.createElement('canvas'); // 渲染用Canvas

        this.computerContext = this.computerCanvas.getContext('2d'); // 计算用上下文
        this.renderContext = this.renderCanvas.getContext('2d'); // 渲染用上下文

        this.globalWidth = window.innerWidth; // 全局宽度
        this.globalHeight = window.innerHeight; // 全局高度

        this.booms = []; // Boom对象数组
        this.running = false; // 运行标志
    }

    handleMouseDown(e) {
        // 处理鼠标点击事件
        const boom = new Boom({
            origin: { x: e.clientX, y: e.clientY },
            context: this.computerContext,
            area: {
                width: this.globalWidth,
                height: this.globalHeight
            }
        });
        boom.init();
        this.booms.push(boom);
        this.running || this.run();
    }

    handlePageHide() {
        // 处理页面隐藏事件
        this.booms = [];
        this.running = false;
    }

    init() {
        // 初始化方法
        const style = this.renderCanvas.style;
        style.position = 'fixed';
        style.top = style.left = 0;
        style.zIndex = '999999999999999999999999999999999999999999';
        style.pointerEvents = 'none';

        style.width = this.renderCanvas.width = this.computerCanvas.width = this.globalWidth;
        style.height = this.renderCanvas.height = this.computerCanvas.height = this.globalHeight;

        document.body.append(this.renderCanvas);

        window.addEventListener('mousedown', this.handleMouseDown.bind(this));
        window.addEventListener('pagehide', this.handlePageHide.bind(this));
    }

    run() {
        // 运行方法
        this.running = true;
        if (this.booms.length === 0) {
            return this.running = false;
        }

        requestAnimationFrame(this.run.bind(this));

        this.computerContext.clearRect(0, 0, this.globalWidth, this.globalHeight);
        this.renderContext.clearRect(0, 0, this.globalWidth, this.globalHeight);

        this.booms.forEach((boom, index) => {
            if (boom.stop) {
                return this.booms.splice(index, 1);
            }
            boom.move();
            boom.draw();
        });
        this.renderContext.drawImage(this.computerCanvas, 0, 0, this.globalWidth, this.globalHeight);
    }
}

const cursorSpecialEffects = new CursorSpecialEffects();
cursorSpecialEffects.init();

 

 

音乐播放器

播放器详见明月浩空网
这是一个专注于html音乐播放器10年的网站,基础功能都是免费!

 

 

网页计时器

依然出自我的与末的个人引导页
展示此内容需要在Sun-Panel自定义页脚加上此代码

<span id="sitetime"></span>


function siteTime() {
  window.setTimeout(siteTime, 1000);

  var seconds = 1000;
  var minutes = seconds * 60;
  var hours = minutes * 60;
  var days = hours * 24;
  var years = days * 365;

  var targetDate = new Date(2023, 11, 18); // 注意月份是从0开始的,所以11表示12月
  var today = new Date();
  var diff = today - targetDate;

  // 计算已运行的年数
  var totalYears = Math.floor(diff / years);

  // 计算剩余时间
  var remainingTime = diff % years;

  var diffDays = Math.floor(remainingTime / days);
  remainingTime %= days;

  var diffHours = Math.floor(remainingTime / hours);
  remainingTime %= hours;

  var diffMinutes = Math.floor(remainingTime / minutes);
  remainingTime %= minutes;

  var diffSeconds = Math.floor(remainingTime / seconds);

  document.getElementById("sitetime").innerHTML = "网页已运营 " + totalYears + " 年 " + diffDays + " 天 " + diffHours + " 小时 " + diffMinutes + " 分钟 " + diffSeconds + " 秒";
}

siteTime();

 

附特殊字符,用来替换雪花的特殊字符,想让页面飘什么样的就替换什么样的:

 

音符符号

♩ ♪ ♫ ♬ ♭ ♮ ♯

 

太阳,月亮,雨,云,流星,伞,温泉,堆雪人,冰晶符号

ϟ ☀ ☁ ☂ ☃ ☄ ☉ ☼ ☽ ☾ ♁ ♨ ❄ ❅ ❆

 

星号符号

★ ☆ ✡ ✦ ✧ ✩ ✪ ✫ ✬ ✭ ✮ ✯ ✰

 

冰晶,星星,太阳,花朵符号

⁂ ⁎ ⁑ ☸ ✢ ✣ ✤ ✥ ✱ ✲ ✳ ✴ ✵ ✶ ✷ ✸ ✹ ✺ ✻ ✼ ✽ ✾ ✿ ❀ ❁ ❂ ❃ ❇ ❈ ❉ ❊ ❋ ❅ ❆ ✥

2024-06-11
赞
评论
  • cccccc:你后台不能添加栏目的问题解决了吗,是什么原因。
  • admin 回复 cccccc:解决了,不是程序的问题,是服务器的问题。我在云服务器后台提交了工单,服务器供应商那边处理了。推测是服务器供应商做了一些安全策略的调整导致的。
登录后可以点赞和评论
admin
admin

已经修改的内容如下

 

/* 自定义页面背景 */
.sun-main {
    background: #f9f9f9;
}

/* 自定义文字阴影 */
.text-shadow[data-v-15580241],.text-shadow[data-v-679daf12],.divider {
    color: #333333;
    text-shadow: none !important;
}

/* 自定义搜索框 */
.search-container {
    background: rgba(211,211,211,0.3) !important;
    border: 1px solid #e9e9e9 !important;
}

input[data-v-d2b10c26] {
    color: #333333;
}

input[data-v-d2b10c26]::placeholder {
    color: #bbbbbb;
}

.search-container:hover,.focused,.focused:hover {
    box-shadow: none !important;
    border: 1px solid #dfdfdf !important;
}


/* 自定义系统状态卡片 */
.system-monitor-header,.group-title {
    background: url(/custom/postcard.svg);
    padding-left: 35px;
    background-size: 26px 26px;
    background-repeat: no-repeat;
    background-position: left;
    font-width: normal;
}

/* 自定义系统状态进度条 */
.n-progress {
    max-width: 600px !important;
}

/* 自定义SVG小图标颜色 */
.svg-icon .svg-use {
    color: #333333 !important;
}

/* 自定义项目卡片 */
.item-list .icon-info-box .app-icon .app-icon-info,.system-monitor .icon-info-box .generic-monitor-card .item-card .item-card-info {
    height: 86px;
    cursor: pointer;
    padding: 8px 0px 0px 0px;
    border-radius: 4px;
    border: 1px solid #e4ecf3;
    margin: 0;
    -webkit-transition: all 0.3s ease;
    -moz-transition: all 0.3s ease;
    -o-transition: all 0.3s ease;
    transition: all 0.3s ease;
}

.item-list .icon-info-box .app-icon .app-icon-info:hover,.system-monitor .icon-info-box .generic-monitor-card .item-card .item-card-info:hover {
    transform: translateY(-6px);
    -webkit-transform: translateY(-6px);
    -moz-transform: translateY(-6px);
    box-shadow: 0 26px 40px -24px rgba(0, 36, 100, 0.3);
    -webkit-box-shadow: 0 26px 40px -24px rgba(0, 36, 100, 0.3);
    -moz-box-shadow: 0 26px 40px -24px rgba(0, 36, 100, 0.3);
    -webkit-transition: all 0.3s ease;
    -moz-transition: all 0.3s ease;
    -o-transition: all 0.3s ease;
    transition: all 0.3s ease;
}

/* 自定义项目卡片间距 */
.icon-info-box[data-v-15580241],.icon-info-box[data-v-679daf12] {
    grid-template-columns: repeat(auto-fill,minmax(300px,1fr)) !important;
    gap: 20px !important;
    grid-column-gap: 30px !important;
}

/* 自定义项目卡片图标 */
.item-list .icon-info-box .app-icon .app-icon-info .app-icon-info-icon .app-icon-info-text-box {
    transform: translateY(-50%);
    position: absolute;
    margin-left: 50px;
    top: 50%;
}

/* 自定义项目卡片标题字体 */
.font-semibold {
    font-size: 15px;
}

/* 自定义项目卡片描述字体 */
.text-xs {
    color: #888888;
}

 

sun-main:控制整个页面的背景颜色。

 

text-shadow[data-v-15580241]:这个text-shadow是控制字体阴影效果,包括LOGO和分组标题的文字颜色都可以用这个属性控制。因为sun-panel的前端是基于VUE的,所以会有data-v-15580241这样的标签。

 

text-shadow[data-v-679daf12]:这个跟上面的是一样,只不过这个控制的是系统状态分组的文字效果。

 

system-monitor-header和group-title:这是分组的标题。

 

divider:这个是控制那个“|”分隔线的。

 

svg-icon和svg-use:控制页面中的SVG图像,包括分组中用来添加或排序的按钮图标,以及搜索框中的搜索按钮。

 

item-card-info:这个就是控制单个项目的卡片样式,但不包括系统状态项目。

 

item-card-info:hover:这个是单个项目卡片鼠标放上去时候的样式。

 

icon-info-box[data-v-15580241]和icon-info-box[data-v-679daf12]:控制分组中每个项目卡片之间的间隔,属于grid布局的,需要用到grid布局中的一些属性和参数。例如grid-template-columns就是列,gap就是间隔距离,grid-column-gap就是列与列之间的间隔距离。如果是grid-template-row就是行,grid-row-gap就是行与行之间的间隔距离。

 

n-progress:这个是系统状态卡片中的进度条。当整个系统状态卡片被拉宽之后,需要用这个属性将进度条的长度加长,默认的是135px,这个值还是默认的最大值,也就是说,不管卡片被拉到多宽,进度条最长也只有135px的长度。

 

app-icon-info-text-box:这是单个项目卡片中文字那一块的属性,就是标题和描述那一块。

 

font-semibold:控制单个项目的标题文字。

 

text-xs:控制单个项目的描述文字。

 

目前修改的基本上就是这些内容,因为单个项目的图标大小不用改,就没有在修改的内容中。如果要改的话,是由app-icon-info-icon这个属性控制。

 

上面的内容还不算是美化,只能说是可以按照自己想要的效果进行修改了。下面附上大佬进行美化的一些内容,复制粘贴进自定义CSS文件里面即可,注意要清除缓存。

 

 

自定义字体

定义字体名MC (虽然字体出处不是MC)
用*直接全局替换字体
字体出自游戏:主播女孩重度依赖
如字体文件不生效,请确保路径文件正确或字体可以正常使用。
建议先用我这提供的字体进行测试再使用自定义字体!
附件:字体文件下载

/* 自定义字体 */
@font-face {
  font-family: "MC";
  src: url("/custom/DinkieBitmap-9px.ttf");
}

/* 自定义全局字体 */
* {
  font-family: MC;
}

 

 

自定义光标

用body定义默认鼠标样式
.cursor-pointer定义悬浮鼠标样式
(这应该是个笨办法,但是我尽力了,我尝试了很多办法只有这个生效了)
光标由Custom-Cursor提供

/* 定义新光标样式 */
body {
  cursor: url(https://cdn.custom-cursor.com/db/4828/32/arrow2747.png), default !important;
}

 

/* 自定义悬浮光标 */
.cursor-pointer {
  cursor: url(https://cdn.custom-cursor.com/db/4827/32/arrow2747.png), auto !important;
}

 


自定义footer

这个页脚是为了我自己的页面定制的
给网页计时器稍微排了一下
也给播放器歌词预留了空间

/* 自定义footer */
.footer {
  color: #ffffff;  /* 文字颜色设置为白色 */
  position: fixed;  /* 设置定位为固定位置 */
  left: 50%;  /* 距离左边50%的位置 */
  transform: translateX(-50%);  /* 通过transform属性水平居中 */
  bottom: 40px;  /* 距离底部40像素的位置 */
  width: 100%;  /* 宽度100% */
  height: auto;  /* 高度自动调整 */
  min-height: 50px;  /* 最小高度为50像素 */
  z-index: 9999;  /* 设置层级为9999 */
  display: flex;  /* 使用弹性盒子布局 */
  justify-content: center;  /* 在主轴上居中对齐 */
  align-items: center;  /* 在交叉轴上居中对齐 */
  flex-direction: column;  /* 设置主轴为垂直方向,使子元素纵向排列 */
  line-height: 1.8;  /* 行高为1.8倍 */
  pointer-events: none;  /* 不接受鼠标事件 */
}

 

 

背景线条样式

代码由Sun-Panel 交流2群 香水 提供

/* 背景线条样式 BY 香水 [二群大佬提供] */

/* 伪元素创建背景线条样式 */
.w-full .font-semibold:before {
  position: absolute;  /* 设置为绝对定位 */
  width: 95px;  /* 宽度为95像素 */
  display: block;  /* 设置为块级元素 */
  height: 75px;  /* 高度为75像素 */
  content: "";  /* 伪元素内容为空 */
  border-radius: 50%;  /* 边框半径为50%,形成圆形 */
  z-index: -1;  /* 设置层级为-1,将其放在内容之后 */
  right: -27px;  /* 距离右边-27像素的位置 */
  top: -35px;  /* 距离顶部-35像素的位置 */
  background: #ffffff3b;  /* 背景颜色为淡白色带透明度的3b */
  box-shadow: -8px 21px 0 #ffffff1a;  /* 设置阴影效果,水平偏移-8px,垂直偏移21px,颜色为淡白色带透明度的1a */
}

 

/* 伪元素创建另一种背景线条样式 */
.w-full .font-semibold:after {
  position: absolute;  /* 设置为绝对定位 */
  width: 40px;  /* 宽度为40像素 */
  display: block;  /* 设置为块级元素 */
  height: 40px;  /* 高度为40像素 */
  border: 4px solid #ffffff3b;  /* 边框为4像素的实线,颜色为淡白色带透明度的3b */
  content: "";  /* 伪元素内容为空 */
  border-radius: 50%;  /* 边框半径为50%,形成圆形 */
  top: -19px;  /* 距离顶部-19像素的位置 */
  right: 48px;  /* 距离右边48像素的位置 */
  z-index: -1;  /* 设置层级为-1,将其放在内容之后 */
}

 

/* 设置图标信息框的圆角样式 */
.icon-info-box .rounded-2xl {
  position: relative;  /* 设置为相对定位 */
  border-radius: 15px;  /* 设置边框半径为15像素,形成圆角 */
  overflow: hidden;  /* 超出部分隐藏 */
  -webkit-backdrop-filter: blur(10px);  /* 使用Webkit前缀的背景滤镜,模糊程度为10像素 */
  backdrop-filter: blur(10px);  /* 背景滤镜,模糊程度为10像素 */
}

 

 

鼠标悬停动画

鼠标悬停时图标摇晃并且颜色变深
这段代码已经适配了详细图标和小图标
他们的摇晃程度都不一样

/*鼠标悬停动画 */

/* 当鼠标悬停在图标信息框上时触发动画 */
/* 详细图标摇晃动画 */
.icon-info-box .rounded-2xl:hover {
  background: rgba(42, 42, 42, 0.7) !important;/* 背景颜色变成深灰色 */
  -webkit-animation: info-shake-bounce .5s alternate !important;
  -moz-animation: info-shake-bounce .5s alternate !important;
  -o-animation: info-shake-bounce .5s alternate !important;
  animation: info-shake-bounce .5s alternate !important;
}

 

/* 小图标摇晃动画 */
.icon-small-box .rounded-2xl:hover {
  background: rgba(42, 42, 42, 0.7) !important;/* 背景颜色变成深灰色 */
  -webkit-animation: small-shake-bounce .5s alternate !important;
  -moz-animation: small-shake-bounce .5s alternate !important;
  -o-animation: small-shake-bounce .5s alternate !important;
  animation: small-shake-bounce .5s alternate !important;
}

 

/* 定义摇详细图标晃弹跳动画的关键帧 */
@keyframes info-shake-bounce {

  0%,
  100% {
    transform: rotate(0);
  }

  25% {
    transform: rotate(10deg);
  }

  50% {
    transform: rotate(-10deg);
  }

  75% {
    transform: rotate(2.5deg);
  }

  85% {
    transform: rotate(-2.5deg);
  }
}

 

/* 定义摇小图标晃弹跳动画的关键帧 */
@keyframes small-shake-bounce {

  0%,
  100% {
    transform: rotate(0);
  }

  25% {
    transform: rotate(15deg);
  }

  50% {
    transform: rotate(-15deg);
  }

  75% {
    transform: rotate(5deg);
  }

  85% {
    transform: rotate(5deg);
  }
}

2024-06-11
赞
评论
登录后可以点赞和评论
admin
admin

GEE和V8都已经停止更新了,现在主要用的还是翎风引擎,虽然同根同源,但更新之后或多或少还是有些不是完全兼容的地方。就比如这个道士宝宝的血条问题。从V8转到翎风之后,道士宝宝血条始终显示是空的,主要原因就是缺少补丁的图片素材。除了这个,还有几个需要同时修改的地方,记录如下。

 

NewopUI.Pak就是我们通常所说的必备补丁,很多新手小白连必备补丁是哪个都不知道!


需要修改的几处地方:

 

1,boss锁定箭头的素材需要补充,直接从翎风的NewopUI.Pak里面导出来再导入覆盖你的必备补丁里面即可。

编号分别是:144~149,154~159

 

2,道士宝宝血条,很多朋友新转翎风引擎的发现道士召唤宝宝不显示血条了,那是因为你的必备补丁178号没有这个素材!直接从翎风引擎的必备补丁里面将178号的血条导出再导入覆盖你必备补丁里面即可!

 

3,装备替换提示框和确认按钮

编号是:260,261

 

4,组队按钮

编号是:443,444,445

 

5,技能栏,翎风引擎最新的功能,能在桌面显示技能图标,看起来逼格非常高,非常有个性!

编号是:980

 

把这几处的图片素材从翎风的NewopUI.pak文件里导出来,再导入现有的补丁文件中,重新生成登录器即可。需要注意的是,有些版本会和这几个补丁有冲突,比如,如果没有冲突的话,按照这样修改就好,有冲突的话,一般就只需要修改178的图片素材就行。

2024-05-26
赞
评论
登录后可以点赞和评论
admin
admin

5月15号的时候Deepin Linux V23 RC版本发布了,刚好手上有台闲置的迷你主机,也就是我之前的GK55,正好用来安装体验。

 

刚开始安装好之后,由于U盘拔得不太及时,导致系统引导有问题,但是能通过手动的方式进入系统正常使用,进入系统之后发现无法上网,自带的浏览器也很慢,PING了一下路由器和网关,都是通的,又PING了一下百度的域名,也是通的,就是无法打开网页,通过软件商店安装了别的浏览器,可以正常打开网页。于是,我在想,是不是安装的有问题?接着就又重装了一遍。

 

重装之后,系统引导没有问题了,这次的U盘拔得及时。进入系统后发现,自带的浏览器还是打不开网页,没办法,只好换了其他浏览器,最开始换的是Chromium浏览器,挺好用的,就是没有双击关闭标签的功能,在商店里面找到了EDGE浏览器,没错,就是微软的那个浏览器,果断安装。因为在WINDOWS10的时候就一直用这个,用顺手了,感觉还可以。

 

接下来就是各种软件折腾了,深度自己的软件商店里的软件大多数都能正常安装和运行,有极个别的软件无法运行,例如todesk,就是可以安装成功,但无法运行。我到论坛去发帖,版主说让我安装旧版本的,然后安装了,还真的可以正常运行。想安装一个Virtual Box虚拟机,却怎么也找不到可以正常使用的版本。深度自己的商店里面压根就没有这个软件了,装了个星火软件商店,里面有三个版本,但是全都不能安装。从官网下载安装包也是缺少依赖,无法安装。解决依赖问题,这就超出我的能力范围了,放弃。

 

接着在星火软件商店里面下载了仙剑奇侠传98柔情版,竟然能正常游戏,还有仙剑二和仙剑三外传,由于容量比较大,网速太慢就没有下载尝试。有这个仙剑一能玩也不错了。

 

最后就是工作区的问题。默认有四个工作区,把上班要用的软件放在第一个和第二个工作区,自己用的软件,例如微信和QQ,就放在第三或第四个工作区。切换到指定工作区的快捷键没有在设置里面显示,不知道切换到指定的工作区是用什么快捷键,就跑到官方论坛里面找了一下。

 

论坛里的大佬说,通过修改~/.config/kglobalshortcutsrc文件可以指定快捷键,然而,我在这个配置文件中找到了默认的快捷键,就是通过CTRL+ALT+数字键,就可以切换到指定的工作区。比如,要切换到第一工作区就是CTRL+ALT+1,依次类推。有时间了要把这个快捷键改为SUPER+数字键会更方便,Linux里的SUPER键就是Windows里的WIN键。

 

不得不说,这次Deepin Linux V23 RC版真的很棒了,流畅度完全不输Windows10,同样是在这台GK55的机器上,以前的BETA3版本流畅度还是不够。而且基本的一些软件都有了,微信和QQ的Linux版本也都有了,唯一还有点不太好的就是QQ的消息提醒,总是会在屏幕顶部出现信息提示,像在手机上一样,这对我来说就有些碍事,期待后续更新。

2024-05-18
赞
评论
登录后可以点赞和评论
admin
admin

我的手机是苹果和安卓双持。经常会逛逛淘宝,两部手机都有安装淘宝的手机APP,不知道从什么时候开始,安卓的淘宝APP就出现一个挺烦人的广告跳转。就是当桌面的软件图标名称变为红底的时候,点击打开软件,就会跳转到商城的活动页面,而不是进到淘宝的首页,这就很烦了,隔一段时间出现一次,系统中的广告也关闭了,李跳跳也安装了,因为这个不属于开屏广告,所以李跳跳根本没有用。

 

在网上搜了一下,发现也有同样遭遇的人,只是没有找到怎么解决这个问题的方法,说是FLYME8的系统级合作,无法关闭。

 

不死心的我,继续查找相关资料,终于找到了关闭的方法,其实也很简单,就是隐藏得有点深,一般人也想不到是在那里关闭的。

 

关闭方法:

打开淘宝,点击设置,点击隐私,点击广告管理,将程序化广告和个性化广告推荐都关闭即可。

 

这是从网上找到的方法,我这样操作了,就看有没有效果了,如果真的有用,那整个世界就清净了......

 

以前京东也有类似的情况,因为用得少,索性直接卸载了,如果也有这样的情况,这个方法应该也有用。

 

实测这个方法也不管用,还是一样会跳转到天猫超市,莫非真的是系统级合作,无法根除?

 

最后才去FLYME的官网找解决方案。找到如下设置方法:

Flyme 8:设置-通知和状态栏-桌面通知-关掉
Flyme 9:长按桌面空白处-桌面设置-更多设置-精选活动推荐-关掉

 

再看看会不会还有。希望能有用吧。

2024-05-17
赞
评论
登录后可以点赞和评论
admin
admin

Windows10显示WLAN2、以太网2,修改提示“无法重命名”的解决方法。

 

把小主机上的AC9560无线网卡替换成了AX210无线网卡,后来发现“网络连接”中的WLAN后面多了个 2 ,重命名提示“重命名连接错误:无法重命名该连接,具有指定名的连接已存在。指定一个不同的名称。”

 

原因是在你重新安装网卡时,Microsoft 会偷偷的在系统中留下痕迹,使得你的网卡重装并不是真正意义上的重装,你的网卡信息后会增加#2,#3等后缀,注册表中网卡名称相关的键名由DeviceDesc变成FriendlyName,这个不透明的东东让我很不爽。

 

 

要解决其实也挺简单,总共两步:

 

1.打开设备管理器,在查看菜单中选中“显示隐藏设备”,将设备管理器中显示出来的隐藏网卡卸载。

 

2.修改注册表。

 

运行regedit,打开注册表编辑器,修改网卡的名称,找到如下路径:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\{5d624f94-8850-40c3-a3fa-a4fd2080baf3}

 

修改右侧FriendlyName的值,去掉最后面的#2、#3之类的后缀即可。

 

如果是蓝牙设备,找到如下路径:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\BTH\MS_BTHPAN

 

同样的修改右侧FriendlyName的值,去掉最后面的#2、#3之类的后缀即可。

2024-05-11
赞
评论
登录后可以点赞和评论
admin
admin

飞翔的这个版本UI看起来还可以,是我喜欢的样子,但我是个完美主义者,对于默认的UI,感觉还是有一点不太合理,并且缺少“退出游戏”的按钮。除了UI之外,登陆器对于我目前来说,也太复杂了。

 

这是原本的UI界面,主要是右下角那一块,感觉有些凌乱,退出游戏的那“X”的按钮是我自己后来添加上去的,仅仅只是添加一个按钮肯定不行,达不到我想要的效果。于是就稍微修改了一下。

 

修改之后就是这个样子了,看起来好多了,至少是我自己看起来好多了。显示网速的文字是可以在内挂里面取消显示的,就更简洁。

 

原来的登陆器是这个样子的,比较大,右边的那个白色的框框我根本用不上,包括右下角的那四个按钮也用不上,再就是右上角的那俩按钮实在太丑了,整体感觉就很不好。

 

修改之后的登陆器界面,只保留必要的内容,风格也是与游戏内的UI风格一样,这看起来就好多了。

 

这个版本就是有些功能没有开放,或者是存在很多不合理的地方。最普遍的情况就是一些功能没有什么条件限制,只有简单的需要金币或元宝的限制条件。例如改变角色性别,男性也依然可以使用改变成男性的这个功能,女性也是一样。所以,除了修改了UI之外,还花了挺多时间修复了这些存在的问题。

 

剩下的问题就是版本中的NPC极少,除了新手村和土城之外,其他地方都没有NPC。所以我才说这属于半成品。后续还要把这些内容都添加进去。

2024-05-10
赞
评论
登录后可以点赞和评论
admin
admin

现在的传奇都有大背包和自动捡物品的功能,有些老版本是没有的,这就需要自己添加,在网上找了一圈,有教程,但实际上那些教程还有点不是很清楚,折腾了好几天才弄清楚,这也属于是自己的折腾结果,记录下来,方便以后可能会再次用到。

 

添加大背包大的步骤就两步:

 

第一步,修改UI,把原来的背包UI素材用大背包的素材替换,并设置好对应的背包格子的行、列、行高、列宽(有点像EXCEL表格),并把UI中的其他按钮什么的都弄好,保存UI,重新生成登陆器。

 

第二步,添加扩展脚本,在UI被修改之后,超过40格的背包格子是锁定状态,需要通过扩展脚本把锁定的格子解锁。

 

脚本需要用到两个命令:

1.ExtBagPageCount + 1

2.ExtBagOpenItemCount + 1

 

ExtBagPageCount是增加背包扩展页的命令,ExtBagOpenItemCount是扩展背包格子的命令。

 

双击锁定的格子解锁是通过@ClosedBagItemClick段触发相关脚本内容。

 

这两个步骤在网络上都有教程,最开始我是按照这两个步骤来的,一切看起来都很顺利,脚本添加之后发现无法解锁扩展背包格子,折腾两天之后终于找到原因了,我最开始只使用了扩展背包格子的命令,没有使用扩展页的命令,其实引擎的说明书中有说到,每一页背包最多只能扩展40个格子,默认的背包就是一整页40个格子,要是想扩展41个以上的格子,背包的页数也要扩展,否则格子就无法扩展成功。比如说,我增加的大背包总共包含117个格子,按每页40个格子来算,就需要3页,所以扩展页要增加3页,才能将所有的格子解锁。至于解锁时需要什么条件,就看自己的了,需要用金币还是元宝或者其他材料都可以通过脚本控制。

 

扩展的脚本可以添加到登陆脚本中自动扩展,也可以添加到触发脚本中,通过双击锁定的格子触发执行相关脚本。我的这个背包一行是13格,默认的40个格子就会显示成4行,第4行只有第一个格子是可用的,其他12个格子是锁定的,这样就不太好看,所以,我在登陆脚本中也增加了扩展脚本,默认就扩展12个格子,使格子的前4行全部都可用,其他的格子就需要手动解锁。

 

这个方法是LF引擎的,也适用于GEE和V8,老的GOM引擎好像是通过插件实现的,第二步可能会有所不同。

2024-05-10
赞
评论
登录后可以点赞和评论
admin
admin

无意中在B站看到的一款网站状态监测工具,感觉界面简洁清爽,部署也挺简单,虽然对我来说实际意义不大,但,已经放进导航页面了,懒得再修改导航页。重装系统之后,又需要再重新部署一遍。话说,我也不知道是第几次重装系统和重新部署了。因为部署太过简单,之前操作的时候也没有记录过,这次重新部署我又要查官网,找部署的命令,有点麻烦,索性就记录下来,以后只要翻自己的记录就可以了。

 

Docker一键安装:

docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1

 

安装完成之后,通过ip:3001来访问,我一般都是通过istoreos的Docker进行安装部署的,其他方法看不太懂,也没有用过,就不记录了。

 

附GiteHub项目地址:

https://github.com/louislam/uptime-kuma

2024-05-02
赞
评论
登录后可以点赞和评论
admin
admin

Win10 LTSC 2021版本的系统,无任何程序运行,突然出现CPU占用达到30%以上的情况,打开任务管理器查看,发现是wsappx这个服务,这个服务无法结速进程或停止,只能用其他方法解决,从CSDN的大佬文章中终于找到了解决方法。

 

原因:

LTSC2021默认必应输入法无候选框,任务管理器中AppXSVC服务占用大量CPU资源。这是因为在 LTSC 2021 中,微软删除了 Windows 功能体验包的依赖组件,AppXSVC和ClipSVC这俩兄弟是Microsoft Store负责安装、部署和更新UWP应用的两个服务,经常性后台扫描升级占用CPU,正常系统只要关闭Microsoft Store自动更新卡那么一阵就好了。导致系统服务在尝试部署 Windows 功能体验包更新时卡住或陷入死循环。与此同时新版的中文输入法也依赖于Windows功能体验包,但问题是,LTSC2021是没有Microsoft Store的,目前修复方法有两个,一个是安装应用商店,第二个是安装依赖组件包,个人更倾向后者:

 

1.根据自己系统下载附件依赖组件包并解压;

 

2.以管理员身份打开 Windows PowerShell,输入如下命令来安装appx文件,按回车执行:

 

对于 64 位系统,输入以下指令:
Add-AppxPackage -Path “d:\Microsoft.VCLibs.140.00_14.0.30704.0_x64__8wekyb3d8bbwe.Appx”

 

对于 32 位系统,输入以下指令:
Add-AppxPackage -Path “d:\Microsoft.VCLibs.140.00_14.0.30704.0_x86__8wekyb3d8bbwe.Appx”

 

d:\为APPX文件所在路径,请自行更改。

 

两个文件下载链接:https://pan.baidu.com/s/1LNWHSXtU-nid4iK_csvPXw
提取码:5nqa

2024-05-02
赞
评论
登录后可以点赞和评论
admin
admin

Windows10 LTSC 2021这个版本挺好用的,最近都是安装的这个版本,流畅,能满足日常使用,就是会遇到一些小问题。比如,看图片的时候,直接打开的话是画图软件,不是照片查看器,这样就很不方便。windows7和windows10的其他版本我记得是有的,不知道为什么LTSC版就没有了。在网上找到了恢复的方法。

 

  1、先同时按下 Windows 徽标键和 R 键,以启动运行命令窗口,随后输入“ regedit ”命令,进入注册表编辑器。

 

  2、进入注册表编辑器后,需导航至"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft"目录。在此Microsoft主目录中,定位到"Windows Photo Viewer\Capabilities\FileAssociations"目录项,然后在FileAssociations目录内,单击鼠标右键后,选择“ 新建-字符串值 ”选项。

 

  3、假如您想用Windows照片查看器来开启后缀名为jpg的图片文件,请将数值名称设定为jpg,而数值数据则为“ PhotoViewer.FileAssoc.Tiff ”,确认无误并点击“ 确定 ”。

 

  4、如果您希望用Windows照片查看器来浏览后缀名为png的文件,那就将数值名称设置为" .png ",数值数据保持不变仍为" PhotoViewer.FileAssoc.Tiff "。

 

  5、总的来说,不论您想要改变哪种格式的图片文件打开方式,只需将数值名称设为" .格式名称 ",而数值数据永远都是" PhotoViewer.FileAssoc.Tiff "。

 

  6、完成以上步骤,您便成功修改了图片文件的打开方式。现在,可以关闭注册表编辑器,然后对您想打开的图片格式的文件执行右键操作,在打开方式菜单中,您会发现其中已包含“ Windows照片查看器 ”。

 

通过上述步骤的操作,确实可以使用照片查看器打开相关的图片了,这个照片查看器还是跟windows7的一样。

2024-05-02
赞
评论
登录后可以点赞和评论
admin
admin

一直以来我心里的,以及我所说的NAS,其实都是All in One,我自己也一直没弄清楚,手动[捂脸]

 

主要是经常看到有人说做NAS,然后还有一堆其他的功能,就以为NAS也是那样的。折腾了快两年才弄清楚。NAS就只是文件存储,网络上也能查到对NAS的解释,只是因为有些NAS系统功能太过强大,让我感觉NAS就是有很多功能的。

 

那么,一台纯粹的NAS或者说纯粹的NAS系统就只是负责文件的存储,备份和共享了。所以,如果仅仅只是提供文件存储方面的功能的话,NAS的处理器确实不需要多强,难怪J1900的处理器都可以做NAS。之前就很不理解J1900这样的处理器做NAS,始终担心性能不够,结果还是自己想多了。当然,数据量不大的情况下,J1900这样的完全没有问题,要是动辙几十G,几百G的数据量的话,那又另当别论了。在Windows下,拷贝文件的时候,文件太多太大的话,CPU占用也是很高的,对CPU的性能必然也是有一定要求的。

 

综上所述,如果只是将手机上的文件备份到电脑,再把电脑里面的数据进行容灾备份,哪怕再进行文件共享,NAS的处理器确实不需要有多么强悍,要是做All in One就需要有另外一番考虑了。

 

我要做的,一直都算是All in One,除了文件的备份之外,还需要搭建网站,媒体服务器,软路由,以后可能还需要智能家电的中枢。虽然需要的功能还不是很多,但也是超出了纯粹NAS的范畴。

 

稍微梳理一下自己的需求,目前急需的就是文件存储的功能,也就是NAS,然后就是需要媒体服务器,用来看视频,看电影,软件路由的iStoreOS主要用来数据中转,比如内网穿透,以及后期的一些其他功能,网站服务器其实就是顺带的弄一下,做个导航和博客。

2024-04-22
赞
评论
登录后可以点赞和评论
登录
没有账号?立即注册
注册