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

这篇具有很好参考价值的文章主要介绍了WPF界面模糊闪屏花屏,竟是外星人惹的祸。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

运行环境:

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

DirectX工作正常

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

一 问题现象复现

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

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

二 解决办法

问题的原因是外星人电脑或者外星人耳机鼠标等外设在使用时,会安装一些相关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

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

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

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

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

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

参考链接、作者吕毅

如有任何疑问,请 与我联系 (468189405@qq.com) 。文章来源地址https://www.toymoban.com/news/detail-443265.html

到了这里,关于WPF界面模糊闪屏花屏,竟是外星人惹的祸的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用 python 写游戏《外星人入侵》完整代码

    aliven_invasion.py: game_functions.py: alien.py bullet.py button.py game_stats.py scoreboard.py settings.py ship.py

    2024年02月12日
    浏览(36)
  • 外星人笔记本键盘USB协议逆向

    前言 我朋友一台 dell g16 购买时直接安装了linux系统,但是linux上没有官方的键盘控制中心,所以无法控制键盘灯光,于是我就想着能不能逆向一下键盘的协议,然后自己写一个控制键盘灯光的程序。我自己的外星人笔记本是m16,所以我就先从m16开始逆向。 USB协议分析 通过

    2024年02月03日
    浏览(49)
  • Python游戏开发--外星人入侵(源代码)

    最近学习的python第一个项目实战,《外星人入侵》,成功实现所有功能,给大家提供源代码 环境安装:python 3.7+ pygame 安装 pygame 或者 先展示效果,消灭外星人,有三条命,按Q是退出全屏,空格键是子弹,按下play键开始游戏,击败外星人飞船会有积分加,三条命之后需要点击

    2024年02月06日
    浏览(40)
  • Python 实践——外星人入侵小游戏(上)

    先查询python路径,然后在终端输入: 通过pip安装pygame: 新建一个python文档: 没报错就说明安装成功 注意: 名称不要叫pygame.py,他会覆盖真正的pygame pygame 开发游戏 sys 退出游戏 .get()检测事件 .display.flip() (flip快速翻动)随着操作改变,不断更新屏幕,以显示元素的新位置。

    2024年01月22日
    浏览(37)
  • python项目分享 - python外星人入侵小游戏

    🔥 Hi,各位同学好呀,这里是L学长! 🥇今天向大家分享一个今年(2022)最新完成的毕业设计项目作品 外星人入侵小游戏设计与实现 🥇 学长根据实现的难度和等级对项目进行评分(最低0分,满分5分) 难度系数:3分 工作量:3分 创新点:4分 项目获取: https://gitee.com/sinonfin/s

    2024年02月03日
    浏览(47)
  • python毕设分享 python外星人入侵小游戏

    🔥 Hi,各位同学好呀,这里是L学长! 🥇今天向大家分享一个今年(2022)最新完成的毕业设计项目作品 外星人入侵小游戏设计与实现 🥇 学长根据实现的难度和等级对项目进行评分(最低0分,满分5分) 难度系数:3分 工作量:3分 创新点:4分 项目获取: https://gitee.com/sinonfin/s

    2024年02月04日
    浏览(44)
  • Python Project- Alien_invasion(外星人入侵)

    目录 武装飞船 开始游戏项目 创建pygame窗口以及相应用户输入   初始化程序   创建surface对象   事件监听   游戏循环 设置背景色 创建设置类 添加飞船图像 创建ship类 pygame.image   get_rect( )   surface.blit( ) 在屏幕上绘制飞船 重构:模块game_functions 函数 check_events( ) 函数 update_

    2024年02月09日
    浏览(40)
  • python项目分享 外星人入侵小游戏设计与实现 (源码)

    🔥 Hi,各位同学好呀,这里是L学长! 🥇今天向大家分享一个今年(2022)最新完成的毕业设计项目作品 外星人入侵小游戏设计与实现 🥇 学长根据实现的难度和等级对项目进行评分(最低0分,满分5分) 难度系数:3分 工作量:3分 创新点:4分 项目获取: https://gitee.com/sinonfin/s

    2024年01月18日
    浏览(51)
  • 外星人控制中心(AWCC)出现错误日志导致电脑卡顿的解决建议

    我的设备是一台19年的戴尔G3 3590,在更新了最新的AWCC之后电脑出现随机卡顿,于是开始尝试解决问题,最后在戴尔支持技术人员的帮助下解决了卡顿问题,AWCC正常工作,G模式也能正常开启。以下是一些解决建议。 按照戴尔支持技术人员的说法,戴尔针对新版本的AWCC导致电

    2024年02月11日
    浏览(166)
  • python毕设分享 外星人入侵小游戏设计与实现 (源码)

    🔥 Hi,各位同学好呀,这里是L学长! 🥇今天向大家分享一个今年(2022)最新完成的毕业设计项目作品 外星人入侵小游戏设计与实现 🥇 学长根据实现的难度和等级对项目进行评分(最低0分,满分5分) 难度系数:3分 工作量:3分 创新点:4分 项目获取: https://gitee.com/sinonfin/s

    2024年02月05日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包