У меня есть старое приложение VB6, которое я распространил для нескольких пользователей, работающих под управлением XP, Windows 7 и Windows 8. Следующий код бросает ошибку «91» «Объектная переменная или с переменной блока набор».Ошибка 91 с использованием CreateObject на компьютерах XP
Const ssfPERSONAL = 46 'set directory to the common Documents folder
Dim strMyDocsPath As String 'stores common docsPath
On Error GoTo ErrorHandler
strMyDocsPath = CreateObject("Shell.Application").NameSpace(ssfPERSONAL).Self.Path
в частности, последняя строка является проблемой. Я хочу strMyDocsPath, чтобы указать на общую папку документов на компьютере пользователя. Он отлично работает в Windows 7 и 8, но не на машинах XP, за исключением XP, где он работает без сбоев.
На проблемных компьютерах я попытался перерегистрировать scrrrun.dll и получил сообщение, зарегистрированное успешно. Я попытался загрузить и установить VB6 распространяемые файлы SP6 и все еще получить ошибку. Я искал несколько форумов и просто не могу понять. Есть идеи?
Попробуйте использовать промежуточную переменную для создания объекта, используя ключевое слово 'Set'. Затем назначьте строку строковой переменной. – JimmyPena
«Шелл» - это проводник Windows, он не имеет ничего общего с временем выполнения сценариев. – Bob77