Skif_off
Gold Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору korosya Хотел посмотреть, как убираются дубликаты, заметил: почему так сложно раскрываются переменные окружения (EnvParse()) - регэкспы (почему не что-то типа "%[^%]+?%", а любой символ, ".*"?), EnvGet()? Есть же _WinAPI_ExpandEnvironmentStrings(), у себя (не люблю инклюды) целиком копирую эту короткую функцию в тело скрипта Код: ;WinAPI.au3 Func _WinAPI_ExpandEnvironmentStrings($sString) Local $aResult = DllCall("kernel32.dll", "dword", "ExpandEnvironmentStringsW", "wstr", $sString, "wstr", "", "dword", 4096) If @error Then Return SetError(@error, @extended, "") Return $aResult[2] EndFunc ;==>_WinAPI_ExpandEnvironmentStrings | Просто скармливаете ей всю строку и всё. В начале файла идёт Код: ; Language: AutoIt v3.3.6.1 | но далее директивы компиляции #pragma compile() из версии посвежее. Может быть, есть смысл указать минимальную версию? Если вполне работает с 3.3.8.1 и выше, то стоит иметь в виду, что в 3.3.8.1 бывают пролемы с FileGetLongName() (у меня тут всплыло), есть смысл перейти напрямую на GetLongPathNameW. У себя так использую [?]. | Всего записей: 6648 | Зарегистр. 28-01-2008 | Отправлено: 23:15 26-06-2018 | Исправлено: Skif_off, 23:15 26-06-2018 |
|