Quote from: 

http://flexerasoftware.force.com/articles/en_US/INFO/Q105971

Synopsis

 

The Windows Installer service places information in the registry that has to do with my product, but I do not recognize the GUID-like keys that appear.

Discussion

In some cases (such as the location of the Uninstall string), MSI stores information about your project using your full Product Code GUID. In most cases, however, most GUID-specific MSI information is stored using a compressed GUID format. In this compressed format, all of the hexadecimal digits in the GUID are the same, but their order is switched around and extraneous characters (hyphens and curly braces) are omitted.

Here is the typical GUID format:

{ABCDEFGH-1234-IJKL-5678-MNPQRSTUVWXY}

The following steps are taken to convert this GUID to its compressed counterpart:

  1. The first group of eight hexadecimal digits are placed in reverse order:

    ABCDEFGH becomes HGFEDCBA

  2. The same is done with the second group of four hexadecimal digits:

    1234 becomes 4321

  3. The same is done with the third group of four hexadecimal digits:

    IJKL becomes LKJI

  4. In the fourth group of four hexadecimal digits, every two digits switch places:

    5678 becomes 6587

  5. In the last group of 12 hexadecimal digits, again every two digits switch places:

    MNPQRSTUVWXY becomes NMQPSRUTWVYX

  6. Finally, the hyphens and curly braces are dropped:

    {ABCDEFGH-1234-IJKL-5678-MNPQRSTUVWXY} becomes
    {HGFEDCBA-4321-LKJI-6587-NMQPSRUTWVYX} becomes
    HGFEDCBA4321LKJI6587NMQPSRUTWVYX

Q105971:Converting a Regular GUID to a Compressed GUID的更多相关文章

  1. PHP+Jquery+Ajax 实现动态生成GUID、加载GUID

    GUID: 全局唯一标识符(GUID,Globally Unique Identifier)是一种由算法生成的二进制长度为128位的数字标识符.GUID主要用于在拥有多个节点.多台计算机的网络或系统中 ...

  2. Guid.NewGuid() 和 new Guid()的区别

    Guid.NewGuid().ToString() + "||" + (new Guid()).ToString() b8efacbb-7d43-4da5-9f48-9a75d8c ...

  3. List<Guid?> a = new List<Guid?>();

    正常写法 泛型 类型 为 Guid? List<Guid?> a = new List<Guid?>(); Guid? b = null; Nullable<Guid&g ...

  4. C#生成Guid,SqlServer生成Guid

    https://www.cnblogs.com/che109/p/6808143.html工作中需要用到全球唯一标识符,在.net当中 微软已经为我们添加了此方法,我们只需要直接调用即可.代码如下: ...

  5. C#中GUID的生成格式(Guid.ToString方法 )

    GUID 是微软对UUID这个标准的实现.UUID是由开放软件基金会(OSF)定义的.UUID还有其它各种实现,不止GUID一种 public string ToString(     string  ...

  6. UUID GUID

    http://baike.baidu.com/link?url=xkck9gR5bzOx0oBKP1qNJwGGq3IO56V4i8cg9zTSpSDMVBMA0F7jr0AdkQTGyk7F0FGj ...

  7. UniqueIdentifier 数据类型 和 GUID 生成函数

    UniqueIdentifier 数据类型用于存储GUID的值,占用16Byte. SQL Server将UniqueIdentifier存储为16字节的二进制数值,Binary(16),按照特定的格 ...

  8. 生成GUID唯一值的方法汇总(dotnet/javascript/sqlserver)

    一.在 .NET 中生成1.直接用.NET Framework 提供的 Guid() 函数,此种方法使用非常广泛.GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的任何两台计 ...

  9. SQLSERVER如何使用递增排序的GUID做主键

    场景: 产品表数据量较大想用Guid做表的主键,并在此字段上建立聚簇索引. 因为Guid是随机生成的,生成的值大小是不确定的,每次生成的数可能很大,也可能很小.这样会影响插入的效率 1.NEWSEQU ...

随机推荐

  1. POJ-1151 Atlantis 矩形面积并

    题目链接:http://poj.org/problem?id=1151 扫描线+离散+线段树,线段树每个节点保存的是离散后节点右边的线段. //STATUS:C++_AC_16MS_208KB #in ...

  2. MySQL 5.7 for Windows 解压缩版 MySQL 服务无法启动

    MySQL 5.7 for Windows 解压缩版配置安装 http://jingyan.baidu.com/article/f3ad7d0ffc061a09c3345bf0.html basedi ...

  3. Java RMI之介绍

    http://zh.wikipedia.org/wiki/Java_RMI Java远程方法调用,即Java RMI(Java Remote Method Invocation)是Java编程语言里, ...

  4. C++中随机函数

    #include <iostream> using namespace std; #include <stdlib.h> #include <time.h> int ...

  5. 在SCVMM2012R2中删除失去联系的VM GateWay

    当VM Gateway失去联系,无法使用,直接删除GW,或者在VM Network中删除GW连接,均会出现如下错误提示: 错误(21426)对配置提供程序 4ee559f1-f479-480c-945 ...

  6. Add-VMNetworkAdapterAcl(添加访问控制列表)

    Add-VMNetworkAdapterAclCreates an ACL to apply to the traffic through a virtual machine network adap ...

  7. winform窗体跟随窗体

           Form2 frm2 = new Form2();         private void MoveProc()         {             frm2.StartPos ...

  8. Android音频底层调试-基于tinyalsa

    因为Android中默认并没有使用标准alsa,而是使用的是tinyalsa.所以就算基于命令行的測试也要使用libtinyalsa.Android系统在上层Audio千变万化的时候,能够能这些个工具 ...

  9. git版本号管理工具的上手

    git是一个分布式的版本号管理工具 和其它集中式版本号管理 工具相比具有下面长处: 1.能够在不联网的情况下开发 2.能够方便的建立本地分支 3.本地化的日志,高速获得信息 git命令的使用 mkdi ...

  10. AIDL-Android接口描述语言实现跨进程通讯

    在Android中, 每个应用程序都可以有自己的进程. 在写UI应用的时候, 经常要用到Service. 在不同的进程中, 怎样传递对象呢? 显然, Java中不允许跨进程内存共享. 因此传递对象, ...