Estoy tratando de convertir el código GUID de producto de MSI en el ID de código de producto utilizado para identificar el elemento instalado en las claves de registro de MSI. ¿Hay una API para esto? Si no, ¿cómo puede hacerse esto?¿Código de producto MSI desde la identificación del producto?
5
A
Respuesta
5
¡Advertencia! Microsoft recomienda encarecidamente que no se metan con sus llaves MSI registro, pero si realmente debe, aquí es una rutina para traducir un código de producto estándar GUID en el formato de la clave utilizada en el registro:
private static string TranslateMsiProductCode(Guid productCode)
{
// 93 CE EF F6 AA 3D 4E 99 84 E1 8F FB F7 2C 43 0D <--- Source
// 6F FE EC 39 D3 AA 99 E4 48 1E F8 BF 7F C2 34 D0 <--- Target
// ----------- ----- ----- -----------------------
// 01 23 45 67 89 01 23 45 67 89 01 23 45 67 89 01
// 0 1 2 3
// examples:
// {93CEEFF6-AA3D-4E99-84E1-8FFBF72C430D} -> 6FFEEC39D3AA99E4481EF8BF7FC234D0
// {0E837AF0-4C92-4077-83F0-D022073F17C0} -> 0FA738E029C47704380F0D2270F3710C
// {4AE61EA4-9F6F-4616-9035-0CF343EA462D} -> 4AE16EA4F6F961640953C03F34AE64D2
string input = productCode.ToString("N").ToUpper();
StringBuilder newString = new StringBuilder(input);
newString[0] = input[7];
newString[1] = input[6];
newString[2] = input[5];
newString[3] = input[4];
newString[4] = input[3];
newString[5] = input[2];
newString[6] = input[1];
newString[7] = input[0];
newString[8] = input[11];
newString[9] = input[10];
newString[10] = input[9];
newString[11] = input[8];
newString[12] = input[15];
newString[13] = input[14];
newString[14] = input[13];
newString[15] = input[12];
newString[16] = input[17];
newString[17] = input[16];
newString[18] = input[19];
newString[19] = input[18];
newString[20] = input[21];
newString[21] = input[20];
newString[22] = input[23];
newString[23] = input[22];
newString[24] = input[25];
newString[25] = input[24];
newString[26] = input[27];
newString[27] = input[26];
newString[28] = input[29];
newString[29] = input[28];
newString[30] = input[31];
newString[31] = input[30];
return newString.ToString();
}
0
Aquí es Lo que hice en Perl, me encontré con esta pregunta cuando buscaba una manera más elegante de hacerlo (sin suerte hasta el momento).
use strict;
use warnings;
my $guid;
if (shift() =~ /\{([0-9A-F\-]+)\}/)
{
$guid = $1;
}
die "Usage $0: <guid>\n" unless $guid;
my @sections = split /-/, $guid;
die "Malformed guid $guid\n" if @sections != 5;
my $str;
for (my $i = 0; $i < 3; ++$i)
{
$str .= reverse($sections[$i]);
}
my @tmp = split //, join('', @sections[3,4]);
for(my $i = 0; $i < @tmp; $i += 2)
{
$str .= join('', @tmp[$i+1, $i]);
}
print "$str\n";
Cuestiones relacionadas
- 1. Obtener código de producto de Msi instalado
- 2. Obtenga la identificación del producto en magento
- 3. Android: identificación del producto en la aplicación
- 4. ¿Cómo obtener la disponibilidad del producto con la identificación del producto en magento?
- 5. Obtener el nombre del producto del archivo msi en C#
- 6. Magento pasa la identificación actual del producto al módulo
- 7. EAN/GTIN código de barras o identificación del producto - código de barras para Productos
- 8. WooCommerce: Crear producto por código
- 9. Crear un enlace directo a un producto de Magento a través del número de identificación del producto
- 10. Algoritmo de nombre del producto
- 11. Producto de complemento VS Producto de la característica
- 12. Magento: Obtenga visibilidad del producto
- 13. Magento agrega programáticamente la imagen del producto
- 14. Obtener todo producto simple de un producto configurable en Magento Vista de producto
- 15. Deshabilitar un Producto Magento a través del código
- 16. En WiX, ¿dónde se especifica el Código de producto?
- 17. Versión del archivo vs. Versión del producto
- 18. Categoría de producto Magento
- 19. ¿Cómo puedo encontrar el número de versión del producto MSI con PowerShell?
- 20. Producto cruzado en MapReduce
- 21. ID de categoría de Magento del ID de producto
- 22. Unidad de peso del producto Magento
- 23. ¿Cómo cambiar programáticamente la versión del producto de un proyecto?
- 24. Magento producto plano
- 25. Producto cartesiano en MATLAB
- 26. Obtener imagen del producto base en Magento
- 27. Magento y atributos configurables del producto
- 28. Cambiar el nombre del producto con mage.exe
- 29. implementación de claves de producto
- 30. eficiente algoritmo de producto cartesiano
¡Guau! Parece que hay algunas oportunidades allí para simplificar el intercambio de caracteres y las inversiones de cadena, ¡pero gracias! –
Esta rutina se escribió un poco mejor aquí: http://stackoverflow.com/questions/17936064/how-can-i-find-the-regrade-code-for-an-installed-application-in-c –