相关疑难解决方法(0)

生成唯一的计算机ID

我需要编写一个函数来生成一个id,该id对于运行Windows操作系统的给定机器是唯一的.

目前,我正在使用WMI查询各种硬件参数并将它们连接在一起并散列它们以获得唯一的id.我的问题是,我应该使用的建议参数是什么?目前,我正在使用bios\cpu\disk数据的组合来生成唯一ID.如果每个指标有多个结果,我会使用第一个结果.

但是,我遇到了一个问题,即双引导到两个不同的Windows操作系统的机器在每个操作系统上生成不同的站点代码,理想情况下不会发生这种情况.

作为参考,这些是我目前使用的指标:

Win32_Processor:UniqueID,ProcessorID,Name,Manufacturer,MaxClockSpeed
Win32_BIOS:Manufacturer
Win32_BIOS:SMBIOSBIOSVersion,IdentificationCode,SerialNumber,ReleaseDate,Version
Win32_DiskDrive:Model, Manufacturer, Signature, TotalHeads
Win32_BaseBoard:Model, Manufacturer, Name, SerialNumber
Win32_VideoController:DriverVersion, Name
Run Code Online (Sandbox Code Playgroud)

windows wmi winapi uniqueidentifier

101
推荐指数
3
解决办法
10万
查看次数

从32位应用程序读取64位注册表

我有为AnyCPU编译的ac#单元测试项目.我们的构建服务器是64位机器,并安装了64位SQL Express实例.

测试项目使用类似于以下内容的代码来标识.MDF文件的路径:

    private string GetExpressPath()
    {
        RegistryKey sqlServerKey = Registry.LocalMachine.OpenSubKey( @"SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" );
        string sqlExpressKeyName = (string) sqlServerKey.GetValue( "SQLEXPRESS" );
        RegistryKey sqlInstanceSetupKey = sqlServerKey.OpenSubKey( sqlExpressKeyName + @"\Setup" );
        return sqlInstanceSetupKey.GetValue( "SQLDataRoot" ).ToString();
    }
Run Code Online (Sandbox Code Playgroud)

这段代码在我们的32位工作站上工作正常,并且在我最近使用NCover启用代码覆盖率分析之前,在构建服务器上工作正常.因为NCover使用32位COM组件,所以测试运行器(Gallio)作为32位进程运行.

检查注册表,下面没有"实例名称"键

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server

在32位模式下运行的应用程序是否有办法访问Wow6432Node外部的注册表?

.net c# registry 64-bit 32-bit

91
推荐指数
3
解决办法
6万
查看次数

.NET 3.5中的RegistryKey.OpenBaseKey有哪些替代方案?

我一直在使用安装程序包并使用RegistryKey.OpenBaseKey来处理自定义操作,这些操作可以打开和从64位注册表添加/删除密钥或从MSI包中删除32位注册表,但这需要我在运行我的安装程序之前,使用引导程序或其他东西在目标计算机上安装.NET Framework 4,因为OpenBaseKey仅在.NET Framework 4中引入.理想情况下,我想仅针对.NET Framework 3.5并仍然能够修改OpenBaseKey中的64位或32位注册表配置单元; 那么我不需要.NET 4和安装它的开销.

对于那些不想将.NET 4作为先决条件的人来说,OpenBaseKey还有其他选择吗?可能是像P /调用某种WinAPI方法这样的东西吗?我不确定它会采取什么措施.

.net c# registry winapi .net-framework-version

8
推荐指数
1
解决办法
5872
查看次数