tavria2

Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору lorents У тебя ошибки в обоих Lua-файлах: ie.lua и flashax.lua. Некорректная проверка полученных данных из реестра. Например: Код: strVersion = Registry.GetValue(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Internet Explorer","Version",true); if (Application.GetLastError() ~= 0) then ... | Что говорит справка: Цитата: The data contained within the Registry value. If the action fails, a blank string "" is returned. You can use Application.GetLastError to determine whether this action failed, and why. | Нужно проверять возвращенное значение на пустую строку - такой проверки ты не делаешь. Если ты получил пустую строку, тогда можешь использовать Application.GetLastError для получения кода ошибки. Рассмотрим варианты: В указанном ключе реестра - нет данных: будет возвращена пустая строка и код ошибки - 0, т.к. фактически в операции получения данных никакой ошибки не произошло. В указанном ключе реестра - есть данные, но к ним блокирован доступ: будет возвращена пустая строка и код ошибки - xxxx, т.к. произошла ошибка доступа к данным. Теперь, что получается у тебя? Ты получаешь данные из реестра и допустим, что в указанной ветке нет данных, далее с помощью Application.GetLastError проверяешь на ошибки, а он тебе в этом случае возвратит 0 и ты естественно будешь считать, что данные получены успешно, а на самом деле...? Так, что в твоем случае Application.GetLastError не нужен - используй проверку полученных данных на пустую строку. Например: Код: strVersion = Registry.GetValue(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Internet Explorer","Version",true); if (strVersion == 0) then if (Application.GetLastError() ~= 0) then -- по желанию ... | | Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 16:06 22-05-2010 | Исправлено: tavria2, 16:12 22-05-2010 |
|