Бугага. оказывается, происходит следующее. После попытки перечислить объекты, возвращаемые запросом к WMI, устанавливается код ошибки, но самой ошибки не происходит. Иными словами, «On Error GoTo hError» не срабатывает, переход на метку не происходит. Но если сделать «Err.Number», то это свойство оказывается ненулевым (438, «Object doesn't support this property or method»). Вот тут и срабатывает обработчик ошибок. Если там же сделать что-то вроде «Err.Raise 51», то программа реально упадёт с сообщением от рантайма. В самом VB6 это случается, если, скажем, в какой-то функции перехватить ошибку, но не сделать Err.Clear. В таком случае код ошибки будет виден снаружи с тем же эффектом. Но, как правило, это не проблема, поскольку код ошибки снаружи проверяют только если она гарантировано передаётся наружу (например, полностью отключается перехват, либо после перехвата делают «Err.Raise» с новыми значениями), а если всё остаётся внутри, то и снаружи это не интересно. Вооот. Если не проверять код, то дальше WMI выдаёт информацию, но всё с теми же проблемами, с которыми я столкнулась ранее. Мне не понятно только одно: почему оно вдруг поломалось и даже после перезагрузки работает так и дальше.