gpt4 book ai didi

c# - 如何检查是否在 C# 中安装了特定版本的 Flash 播放器。?

转载 作者:行者123 更新时间:2023-11-30 16:31:12 24 4
gpt4 key购买 nike

我想从我的代码中检查是否安装了特定版本的 Flash 播放器。我使用了以下代码

using Microsoft.Win32

RegistryKey RK = Registry.CurrentUser.OpenSubKey("HKEY_LOCAL_MACHINE\\SOFTWARE\\Macromedia\\FlashPlayer");

if (RK != null)
{
// It's there
}
else
{
// It's not there
}

在注册表中如果我搜索版本为 10.2.161.23 的 Flash 播放器,位置

"HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia"

有 2 个文件夹:

  1. FlashPlayer 和
  2. FlashPlayerActiveX。

但是,我上面的代码不起作用。

请告诉我如何检查系统中是否安装了特定版本的 Flash Player 使用 C#.NET

最佳答案

Adobe 的旧(pre 10)IE Flash 检测代码用于在 VBScript 中测试它是否可以实例化对象 ShockwaveFlash.ShockwaveFlash. 。如果它只是您要测试的主要版本,您可以在 HKCR 下检查这些 key ,例如 HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.10

SWFObject实例化无版本对象名称 ShockwaveFlash.ShockwaveFlash,并查询其 $version 属性。要在 C# 中执行此操作:

// Look up flash object type from registry
var type = Type.GetTypeFromProgID("ShockwaveFlash.ShockwaveFlash");
if (type == null)
{
// No flash
return;
}

// Create a flash object to query
// (should probably try/catch around CreateInstance)
var flashObject = Activator.CreateInstance(type);
var versionString = flashObject.GetType()
.InvokeMember("GetVariable", BindingFlags.InvokeMethod,
null, flashObject, new object[] {"$version"})
as string;
// e.g. "WIN 10,2,152,26"

// Clean up allocated COM Object
Marshal.ReleaseComObject(flashObject);

关于c# - 如何检查是否在 C# 中安装了特定版本的 Flash 播放器。?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5039636/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com