用山寨方法解决wine运行微信残留阴影窗口的问题

wine 运行微信时候,微信会留下一些阴影窗口在其他窗口上面,很影响操作。于是用最山寨的方式解决之。

用 WinSpy 可知,阴影窗口的类名微信统一叫做 “popupshadow”, 这样正好可以最大限度防止误杀,于是写个最简单的程序,每3秒查找所有这个类名的窗口,然后用 ShowWindow 隐藏即可。代码如下

#include “windows.h”
LPCTSTR windowClassName = L”popupshadow”;
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow)
{
for (;;)
{
for (HWND h = FindWindowEx(NULL, NULL, windowClassName, NULL);
h = FindWindowEx(NULL, h, windowClassName, NULL);
h != NULL)
{
ShowWindow(h, SW_HIDE);
}
Sleep(3000);
}
return 0;
}

然后用 mingw 交叉编译即可

i686-w64-mingw32-g++ -municode -m32 -o wechatkill wechatkill.cpp

后台保持它运行就可以正常使用微信了。

Unreal Engine 4 Linux 用集成显卡报 out of device memory 的解决办法

UE4 在 Linux 下面默认用 Vulkan 作为渲染 API,但是 Vulkan 渲染代码在遇到显存不够的时候会直接退出,如果用集成显卡,或者很老的独立显卡运行 UE4 的话,那么先编辑

Engine/Config/BaseEngine.ini

取消下面这行的注释

; OpenGL4 is deprecated, you can comment this back in to add it to your targeted RHI list
+TargetedRHIs=GLSL_430

然后把前面这行注释掉
;+TargetedRHIs=SF_VULKAN_SM5

就能启动了,启动时候会报个 OpenGL 已经废弃的警告,忽略就行。

斐讯R1升级要点

最近入手了一下斐讯R1音箱,因为斐讯翻车了,所以智能音箱只能当蓝牙和 airplay 音箱了。

折腾过程中发现几个点网上没有提到的,或者很难找到的,在这里汇总一下。
1: 音箱联网需要 APP 辅助,但是新装斐讯 AI APP 需要帐号登录,没有帐号的话不要着急,去斐讯商城注册一个即可,地址自行谷歌。
2: 无法绑定音箱还需要查看版本号的方法,先按三下顶部按钮,进行蓝牙配对以后,用手机放歌的时候再喊小讯小讯,就可以查询版本号了
3: 一键升级包里面的地址一般都已经挂了,所以需要自己随便架个服务器,完全没有必要劫持dns什么的,直接改txt里面的地址就好,用IP就可以,端口也可以不用标准的,我用的就是8080

Google Pixel3 (XL) 开启电信 + VoLTE 支持之最干净的改法

Pixel3(XL) 开启电信和 VoLTE 支持网上有很多改法,但是大部分都对系统伤害过大,或者使用的版本过老。自己倒腾了半天大概搞明白了,于是这里就是对系统最小的改法了。

开开发模式,允许 adb 什么的设置就不讲了。

先解锁,这一步会丢数据,注意了。

adb reboot bootloader
等重启进bootloader 以后
fastboot flashing unlock
等界面上提示以后,用音量键上选择确认解锁。

接下来,从 https://developers.google.com/android/images 下载对应机型最新的版本,解开以后用 flash-all.bat 把手机整个刷了,注意,依然会清除所有数据,如果不想清除,请自行编辑 flash-all.bat 去掉 -w 参数

接下来从 https://pan.baidu.com/s/1KMtYGaqnlDPWFZKvbde9PA 下载 vbmeta.img
fastboot –disable-verity –disable-verification flash vbmeta vbmeta.img

接下来 https://twrp.me 下载对应机型的最新版本。
fastboot boot twrp-<版本>.img
进入以后如果要输密码,选 cancel,之后 enable modification ,然后进去以后我用的版本不会自动启 adb, 我是在 Advanced 里面选 adb sideload 以后取消,他就启动起来了。别的版本可能没有这个问题

接下来 adb shell 进去执行命令
mount /dev/block/by-name/vendor_a /vendor
退出
adb pull /vendor/rfs/msm/mpss/readonly/vendor/mbn/mcfg_sw/mbn_sw.txt
编辑 mbn_sw.txt
最后一行加上
mcfg_sw/generic/China/CT/Commercial/VoLTE_OpenMkt/mcfg_sw.mbn
然后
adb push mbn_sw.txt /vendor/rfs/msm/mpss/readonly/vendor/mbn/mcfg_sw/
如果不需要 VoLTE,只需要电信支持,那么改到这里就已经可以了,如果还需要 VoLTE
那么继续
adb pull /vendor/build.prop
编辑 build.prop
最后面加上
#VoLTE
ro.mtk_ims_support=1
ro.mtk_volte_support=1
persist.mtk.volte.enable=1
persist.dbg.volte_avail_ovr=1
persist.dbg.ims_volte_enable=1
persist.dbg.volte_avail_ovr=1
persist.dbg.vt_avail_ovr=1
persist.dbg.wfc_avail_ovr=1
persist.radio.rat_on=combine
persist.radio.data_ltd_sys_ind=1
persist.radio.data_con_rprt=1
persist.radio.calls.on.ims=1

然后
adb push build.prop /vendor

最后
adb shell umount /vendor

在 twrp 的界面里面重启,注意选那个 Do not install, 不要滑动

重启以后如果没有效果,在系统选项里面恢复出厂设置即可

用这个方案,对系统只有三处修改,算是最干净的修改方式了,而且使用的是最新版本的 pixel 软件

一共就修改了
1: 解锁 bootloader
2: 修改了 vbmeta 分区,禁用了 dm-verity
3: 修改了 vendor 分区,加入了电信的配置,并且打开了系统设置里面 VoLTE 的开关。

最近评论

时光机

其他