theChad
Posts: 1
Score: 0 Joined: 9/24/2008 Status: offline
|
An AutoIt 3 function for the translation: This will work with or without the braces.
#include <string.au3>
Dim $PC = "{FE2F6A2C-196E-4210-9C04-2B1BC21F07EF}" ;an example
MsgBox(0, "Translate Product Code", $PC & @LF & StringReplace($PC, "-", "", 99) & @LF & _TranslateMSIProductCode($PC), 60) ;a test
Func _TranslateMSIProductCode($ProductCode)
;translates a MSI ProductCode to HKCR\Installer\Products\<TranslatedProductCode>
Local $i, $PC = StringReplace(StringReplace($ProductCode, "}", ""), "{", "")
If StringLen($PC) <> 36 Then
SetError(2)
Return $ProductCode
EndIf
Local $TPC = _StringReverse(StringMid($PC, 1, 8))
$TPC = $TPC & _StringReverse(StringMid($PC, 10, 4))
$TPC = $TPC & _StringReverse(StringMid($PC, 15, 4))
$TPC = $TPC & _StringReverse(StringMid($PC, 20, 2))
$TPC = $TPC & _StringReverse(StringMid($PC, 22, 2))
For $i=25 To 35 Step 2
$TPC = $TPC & _StringReverse(StringMid($PC, $i, 2))
Next
Return $TPC
EndFunc
|