Код: Выделить всё
$sSerial = 'VMKJGNDIDNWLDMKJGNDIDNWLD'
MsgBox(0, 'Строка для reg-файла', _StringToRegFileFormat($sSerial, 'REG_EXPAND_SZ'))
Func _StringToRegFileFormat($sData, $sType, $iSlash=10)
Local $sHex, $iHexLength, $aData, $sDataResult, $i, $j=4
If $iSlash < 0 OR ($iSlash > 0 AND $iSlash < 4) Then $iSlash = 4
Switch $sType
Case 'REG_DWORD'
Return 'dword:' & Hex($sData, 8)
Case 'REG_BINARY'
$sType = 'hex:'
$iHexLength = 3
Case 'REG_EXPAND_SZ'
$sType = 'hex(2):'
$iHexLength = 2
Case 'REG_MULTI_SZ'
$sType = 'hex(7):'
$iHexLength = 7
Case Else
Return '"' & $sData & '"'
EndSwitch
$sData = StringLower(Hex(StringToBinary($sData, 2), $iHexLength))
For $i=1 To StringLen($sData) Step 2
$sDataResult &= StringMid($sData, $i, 2) & ','
If $j == $iSlash Then
$j = 0
$sDataResult &= '\' & @CRLF
EndIf
$j += 1
Next
Return $sType & $sDataResult & '00,00'
EndFunc
Работает вроде правильно. Пока проблемка с нулевым значением. Да и сам код выглядит громоздко.
Круть!!