Loopback
|
Posted: Fri Jan 22, 2010 11:04 Post subject: |
|
|
По-видимому, у нас разные версии Autoit, и функция форматирования работает по-разному, а значит в какой-то из них - баг. Переделал другим способом, тем более что использование форматирования было не очень-то и оправданно.
Нужно заменить этот кусок кода.
Code: |
For $i = 1 To $aAssocList[0][0]
$aExt = StringSplit($aAssocList[$i][0], ";")
For $j = 1 To $aExt[0]
$sCurExt = StringTrimLeft(StringStripWS($aExt[$j], 3), 2)
$sIconFile = @ScriptDir & "\ICON_REG\" & $sCurExt & "_icon.reg"
$sProgFile = @ScriptDir & "\PROG_REG\" & $sCurExt & "_prog.reg"
; программы
$hFile = FileOpen($sProgFile, 2+8+32)
FileWriteLine($hFile, "Windows Registry Editor Version 5.00" & @CRLF & @CRLF)
FileWriteLine($hFile, StringFormat('[HKEY_CLASSES_ROOT\\.%s]\r\n@="%sfile"\r\n\r\n', $sCurExt, $sCurExt))
FileWriteLine($hFile, StringFormat("[HKEY_CLASSES_ROOT\\%sfile]\r\n\r\n", $sCurExt))
FileWriteLine($hFile, StringFormat("[HKEY_CLASSES_ROOT\\%sfile\\shell]\r\n\r\n", $sCurExt))
FileWriteLine($hFile, StringFormat("[HKEY_CLASSES_ROOT\\%sfile\\shell\\open]\r\n\r\n", $sCurExt))
FileWriteLine($hFile, StringFormat("[HKEY_CLASSES_ROOT\\%sfile\\shell\\open\\command]\r\n", $sCurExt))
$sProgPath = _TCHExpandEnv($aAssocList[$i][1])
$sProgPath = StringRegExpReplace($sProgPath, '"*([^"]+)\s*".+"', '\1')
$sProgPath = StringReplace(StringStripWS($sProgPath, 3), "\", "\\")
FileWriteLine($hFile, '@="\"' & $sProgPath & '\" \"%1\""')
FileClose($hFile)
; иконки
$hFile = FileOpen($sIconFile, 2+8+32)
FileWriteLine($hFile, "Windows Registry Editor Version 5.00" & @CRLF & @CRLF)
FileWriteLine($hFile, StringFormat('[HKEY_CLASSES_ROOT\\.%s]\r\n@="%sfile"\r\n\r\n', $sCurExt, $sCurExt))
FileWriteLine($hFile, StringFormat('[HKEY_CLASSES_ROOT\\%sfile]\r\n\r\n', $sCurExt))
FileWriteLine($hFile, StringFormat('[HKEY_CLASSES_ROOT\\%sfile\\DefaultIcon]\r\n', $sCurExt))
$sIconPath = _TCHExpandEnv($aAssocList[$i][2])
$sIconPath = StringReplace($sIconPath, "\", "\\")
FileWriteLine($hFile, '@="' & $sIconPath & '"')
FileClose($hFile)
Next
Next
|
|
|