WPF界面模糊闪屏花屏,竟是外星人惹的祸

2024-02-03 00:30

本文主要是介绍WPF界面模糊闪屏花屏,竟是外星人惹的祸,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • WPF界面模糊闪屏花屏,竟是外星人惹的祸
    • 一 问题现象复现
    • 二 解决办法
      • 2.1 卸载外星人相关系列的软件
      • 2.2 NahimicOSD.dll
      • 2.3 软渲染(无奈之举)
      • 2.4 加入黑名单(需要管理员权限)

WPF界面模糊闪屏花屏,竟是外星人惹的祸

运行一个WPF应用程序,发现渲染的结果很多错误和异常。

运行环境:

image-20220113114320049

DirectX工作正常

image-20220113114332239

一 问题现象复现

  • 不同的界面元素大小不一,参差不齐地随处摆放
  • 鼠标划过界面各部分时,划过的矩形区域会闪烁,闪成不同的模样
  • 虽然渲染杂乱无章,但功能依旧还在,你能在界面本来应该在的部位点击获得本该有的正常的界面功能

machine

二 解决办法

问题的原因是外星人电脑或者外星人耳机鼠标等外设在使用时,会安装一些相关NahimicOSD.dll动态链接库的软件导致其他WPF程序渲染异常。

NahimicOSD是一个用于在应用程序最终渲染结果上叠加另一个显示层的库,这个库会在应用程序运行时注入进程,并在目标进程调用 DirectX 渲染时将叠加层加入渲染。

OSD 全称为On-Screen Display,即屏幕叠加显示,再看上面的现象,是不是焕然大悟。

2.1 卸载外星人相关系列的软件

  • Alienware Command Center
  • Alienwarre Customer Connect
  • Alienware Digital Delivery
  • Alienware OnScreen Display
  • Alienware Update

image-20220113114347415

我宣布,全部卸载干净了可以解决这个问题,确实是有点坑!

2.2 NahimicOSD.dll

重命名计算机内的NahimicOSD.dll动态链接库的名称xxxxx.dll请检查一下出问题的电脑上是否有 NahimicOSD.dll 这个文件

另外,这个文件可能有 x86 和 x64 两个版本;可能都需要处理,适用于不同架构的进程。

如果这是一台戴尔电脑,那么它最有可能出现在下面这个路径下:

C:\ProgramData\A-Volute\DellInc.AlienwareSoundCenter\Modules\ScheduledModules\NahimicOSD.dll

如果这是其他品牌的电脑,那么他很有可能出现在下面这个路径下(因为插上了外星人耳机或其他外设,自动安装了驱动):

C:\ProgramData\AWHeadset\DellInc.AlienwareSoundCenter\Modules\ScheduledModules\NahimicOSD.dll

当然,也有其他反馈说在别的路径下的:

C:\ProgramData\A-Volute\A-Volute.28054DF1F58B4\Modules\ScheduledModules\NahimicOSD.dll
C:\ProgramData\A-Volute\A-Volute.Nahimic\Modules\Scheduled\NahimicOSD.dll
C:\ProgramData\A-Volute\Modules\ScheduledModules\NahimicOSD.dll

同时也存在非戴尔设备的情况:

C:\Program Files\Nahimic\Nahimic2\UserInterface\Nahimic2OSD.dll

NahimicOSD 是一个用于在应用程序最终渲染结果上叠加另一个显示层的库,这个库会在应用程序运行时注入进程,并在目标进程调用 DirectX 渲染时将叠加层加入渲染。

2.3 软渲染(无奈之举)

如果你的程序足够简单,那么采用软渲染来规避这个问题也未尝不可。方法是在你第一个窗口显示出来之前,调用一下下面这句话:

System.Windows.Media.RenderOptions.ProcessRenderMode = System.Windows.Interop.RenderMode.SoftwareOnly;

如果想避免影响范围太大,还可以判断一下是否存在这个文件:

bool hasInjected = Process.GetCurrentProcess().Modules.OfType<ProcessModule>().Any(x =>
{return x.FileName.Equals(@"C:\ProgramData\A-Volute\DellInc.AlienwareSoundCenter\Modules\ScheduledModules\NahimicOSD.dll", StringComparison.OrdinalIgnoreCase)|| x.FileName.Equals(@"C:\ProgramData\AWHeadset\DellInc.AlienwareSoundCenter\Modules\ScheduledModules\NahimicOSD.dll", StringComparison.OrdinalIgnoreCase);
});
if (hasInjected)
{RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly;
}

2.4 加入黑名单(需要管理员权限)

  • Dell明明知道知道NahimicOSD那些东西会导致问题,还不修改,搞了个黑白名单,想你的程序能用你就自己改dat文件。

  • NahimicOSD 有一个黑名单文件 BlackApps.dat,在列表里的程序将不会注入破坏其渲染。

  • 路径在:

C:\ProgramData\A-Volute\DellInc.AlienwareSoundCenter\Modules\ScheduledModules\Configurator\BlackApps.dat

image-20220113115331727

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名,不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。

参考链接、作者吕毅

如有任何疑问,请 与我联系 (468189405@qq.com) 。

这篇关于WPF界面模糊闪屏花屏,竟是外星人惹的祸的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/672476

相关文章

一款支持同一个屏幕界面同时播放多个视频的视频播放软件

GridPlayer 是一款基于 VLC 的免费开源跨平台多视频同步播放工具,支持在一块屏幕上同时播放多个视频。其主要功能包括: 多视频播放:用户可以在一个窗口中同时播放任意数量的视频,数量仅受硬件性能限制。支持多种格式和流媒体:GridPlayer 支持所有由 VLC 支持的视频格式以及流媒体 URL(如 m3u8 链接)。自定义网格布局:用户可以配置播放器的网格布局,以适应不同的观看需求。硬

centOS7.0设置默认进入字符界面

刚装的,带有x window桌面,每次都是进的桌面,想改成自动进命令行的。记得以前是修改 /etc/inittab 但是这个版本inittab里的内容不一样了没有id:x:initdefault这一行而且我手动加上也不管用,这个centos 7下 /etc/inittab 的内容 Targets systemd uses targets which serve a simil

Appium--界面元素选择

在操作界面元素前,我们需要进行手机与电脑的连接,这里介绍一个adb无线连接的方法: Adb无线连接功能 无线连接步骤(确保手机和电脑处于同一局域网) 1先以USB有线连接方式连接到计算机 2激活手机adb的无线服务: 命令行输入adb tcpip 5555(5555是端口号) 3计算机以无线方式连接到手机: 命令行输入adb connect 配置信息 desired_caps:这些键值对告诉ap

Winfrom中解决图像、文字模糊的方法

1.添加清单 2.将清单中的下面内容取消注释

WPF入门到跪下 第十三章 3D绘图 - 3D绘图基础

3D绘图基础 四大要点 WPF中的3D绘图涉及4个要点: 视口,用来驻留3D内容3D对象照亮部分或整个3D场景的光源摄像机,提供在3D场景中进行观察的视点 一、视口 要展示3D内容,首先需要一个容器来装载3D内容。在WPF中,这个容器就是Viewport3D(3D视口),它继承自FrameworkElement,因此可以像其他元素那样在XAML中使用。 Viewport3D与其他元素相

【YOLO 系列】基于YOLOV8的智能花卉分类检测系统【python源码+Pyqt5界面+数据集+训练代码】

前言: 花朵作为自然界中的重要组成部分,不仅在生态学上具有重要意义,也在园艺、农业以及艺术领域中占有一席之地。随着图像识别技术的发展,自动化的花朵分类对于植物研究、生物多样性保护以及园艺爱好者来说变得越发重要。为了提高花朵分类的效率和准确性,我们启动了基于YOLO V8的花朵分类智能识别系统项目。该项目利用深度学习技术,通过分析花朵图像,自动识别并分类不同种类的花朵,为用户提供一个高效的花朵识别

【虚拟机/服务器】非图形化界面下修改Shell中颜色的设置

1、首先 cd ~ && ll 可以看到如下图所示 2、输入 sudo vim .bashrc 进入 .bashrc 并通过 /PS1 迅速从上往下定位第一个PS1 3、输入 i 进入插入模式后修改 else 下面的配置如下 说明:\e[1;32;40m] 其中1表示高亮显示,32表示字体颜色是绿色,40表示背景色为黑色 4、输入 esc 退出编辑模式到命令模式,再输入

【视频教程】手把手AppWizard轻松制作一个emWin滑动主界面控制框架,任意跳转控制(2024-09-06)

现在的新版AppWizard已经比较好用,用户可以轻松的创建各种项目常规界面。 比如早期创建一个支持滑动的主界面框架,并且可以跳转各种子界面,仅仅界面布局和各种图片格式转换都要花不少时间,而现在使用AppWizard,可以说轻轻松松,毫不费力。 用户唯一要做的就是根据自己的芯片性能做一定的速度优化。 视频: https://www.bilibili.com/video/BV17Rp3eLE

Android三方登录,微信登录成功后闪屏问题

最近项目要加一个微信登录的功能,发现登录成功后进入WXEntryActivity界面,这个界面是微信来处理接受登录,分享等结果的。关闭的时候this.finish();界面闪烁,虽然不影响功能,但看起来狠辣眼,然后我就想是不是主题的原因,我索性将这个界面的主题设置为透明的 <activity android:name=".wxapi.WXEntryActivity"android:label="

ubuntu 20.04 一直卡在登录界面,即使密码正确也无法登录(失败记录)

ubuntu 20.04 一直卡在登录界面,即使密码正确也无法登录 这次是装实体机,一次失败的尝试。。。 名称型号CPUIntel Xeon E5-2673 V3GPURTX 3060 mobile 安装的时候不要选install third-party software for graphics and Wi-fi hardware and additional media