странности PrivateProfileString
От: Zzz Россия  
Дата: 15.04.02 13:44
Оценка:
Я столкнулся с такой проблемой:
Есть ini-файл (c:\update.ini) я хочу из него получить значение

Dim NewsPath as String

NewsPath=System.PrivateProfileString("c:\update.ini", "PATH", "NewsPath")

Порой все нормально, а чаще получаю "Run-time error 429 Cant create an ActiveX object" почему? :???: :???: :???:
Zzz
Re: странности PrivateProfileString
От: великийИужасный Россия http://www.accords.ru
Дата: 16.04.02 15:25
Оценка:
Здравствуйте Zzz, Вы писали:

Zzz>Я столкнулся с такой проблемой:

Zzz>Есть ini-файл (c:\update.ini) я хочу из него получить значение

Zzz>Dim NewsPath as String


Zzz>NewsPath=System.PrivateProfileString("c:\update.ini", "PATH", "NewsPath")


Zzz>Порой все нормально, а чаще получаю "Run-time error 429 Cant create an ActiveX object" почему?


System — это у тебя что? ActiveX? Ну вот он не создаётся на некоторых машинах из за отсутствия себя..
Re[2]: Наверное, нужно указывать VB или VB.NET
От: Vi2 Удмуртия http://www.adem.ru
Дата: 16.04.02 15:29
Оценка:
Иначе непонятно в каком контексте задается вопрос!
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Re[2]: странности PrivateProfileString
От: Zzz Россия  
Дата: 18.04.02 07:02
Оценка:
Здравствуйте великийИужасный, Вы писали:

И> System — это у тебя что? ActiveX? Ну вот он не создаётся на некоторых машинах из за отсутствия себя.. :)


Я думаю, что АктивХ присутствует, т.к. после перезагрузки код порой отрабатывает (не гарантированно, что с первой перезагрузки все будет нормально, но таки срабатывает иногда)
Zzz
Re[3]: Наверное, нужно указывать VB или VB.NET
От: Zzz Россия  
Дата: 18.04.02 07:14
Оценка:
Здравствуйте Vi2, Вы писали:
Vi2>Иначе непонятно в каком контексте задается вопрос!
Я хочу чтоб для макросов — примочек встроенного в Outlook VBA, которые я написал, сохранялись некоторые настройки, которые в процессе работы могут меняться.. Делаю это при помощи PrivateProfileString, пробовал использовать для сохранения в ини-файл и в реестр, и то и другое достаточно часто выдаёт ошибку "Run-time error 429 'Cant create an ActiveX object '", возникает это ошибка при тех же самых ВСЕХ условиях, при которых и не возникает — то работает, то не работает.
Т.е. если Outlook выдает сообщение об ошибке, в этом сеансе работы код уже не сработает стопудово, а вот перезагрузка помогает, не всегда но две-три перезагрузки хватает ;).. Так-то.. И еще, если Вы знаете, может подскажете: В папку Documents and settings\ Application data\microsoft\Outlook копирую файл VbaProject.otm, хочу чтобы макросы срабатывали автоматически, но этого не произойдет, пока не запустишь вручную в первый раз макрос, автоматом грузиться не будет, вот бы иузнать, как сделать чтобы все автоматически работало, без этого первого запуска вручную, чтоб не доставлять геморрою конечному пользователю?
Zzz
Re[4]: Что такое System объект?
От: Vi2 Удмуртия http://www.adem.ru
Дата: 18.04.02 07:56
Оценка:
Здравствуйте Zzz, Вы писали:

Zzz>Я хочу чтоб для макросов — примочек встроенного в Outlook VBA, которые я написал, сохранялись некоторые настройки, которые в процессе работы могут меняться.. Делаю это при помощи PrivateProfileString, пробовал использовать для сохранения в ини-файл и в реестр, и то и другое достаточно часто выдаёт ошибку "Run-time error 429 'Cant create an ActiveX object '", возникает это ошибка при тех же самых ВСЕХ условиях, при которых и не возникает — то работает, то не работает.

Я не нашел ни в VB6, ни в Outlook 8.0 Object Library никакого упоминания ни о System, ни о PrivateProfileString. Есть API функция PrivateProfileString, но у нее больше параметров.

Zzz>И еще, если Вы знаете, может подскажете: В папку Documents and settings\ Application data\microsoft\Outlook копирую файл VbaProject.otm, хочу чтобы макросы срабатывали автоматически, но этого не произойдет, пока не запустишь вручную в первый раз макрос, автоматом грузиться не будет, вот бы иузнать, как сделать чтобы все автоматически работало, без этого первого запуска вручную, чтоб не доставлять геморрою конечному пользователю?

А вот это нужно новым вопросом задавать (конечно же, со ссылкой на тот Софт, который используется), чтобы все могли видеть и твой вопрос и ответы в соответствующем теме вопроса топике.
Для этого топика твой вопрос — оффтопик.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Re[5]: Что такое System объект?
От: Zzz Россия  
Дата: 18.04.02 11:58
Оценка:
Здравствуйте Vi2, Вы писали:

.
Vi2>Я не нашел ни в VB6, ни в Outlook 8.0 Object Library никакого упоминания ни о System, ни о PrivateProfileString. Есть API функция PrivateProfileString, но у нее больше параметров.

Это из библиотеки MSWORD 8.0/9.0 Object library
Zzz
Re[6]: Что такое System объект?
От: Vi2 Удмуртия http://www.adem.ru
Дата: 18.04.02 12:44
Оценка:
Здравствуйте Zzz, Вы писали:

Zzz>Это из библиотеки MSWORD 8.0/9.0 Object library

А каким образом ты Ворд сюда приплетаешь, если работаешь в Outlook-e? У меня Outlook Express, поэтому не могу проверить. Outlook его сам создает как объект, что ли?
У меня как-то были похожие заморочки при создании объектов Ворда, писал какую-то временную проверку на VB6. Полезла ошибка, смотрю, а копий Ворда уже 6-7 штук, все невидимы, на ТаскБаре — нет, а в системе есть. Когда все снял, пошло нормально. Может и у тебя так же?
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Re[7]: Что такое System объект?
От: Zzz Россия  
Дата: 18.04.02 12:54
Оценка:
Здравствуйте Vi2, Вы писали:

Vi2>А каким образом ты Ворд сюда приплетаешь, если работаешь в Outlook-e? У меня Outlook Express, поэтому не могу проверить. Outlook его сам создает как объект, что ли?

Во встроенном ВБА-редакторе Outlook'a в пункте меню Tools есть такая фигня — References, там как раз и указываются ссылки на библиотеки... И Outlook не экспресс, а офисовский
Zzz
Re[8]: Word нужно создать
От: Vi2 Удмуртия http://www.adem.ru
Дата: 18.04.02 13:07
Оценка:
Здравствуйте Zzz, Вы писали:

Zzz>Здравствуйте Vi2, Вы писали:


Vi2>>А каким образом ты Ворд сюда приплетаешь, если работаешь в Outlook-e? У меня Outlook Express, поэтому не могу проверить. Outlook его сам создает как объект, что ли?

Zzz>Во встроенном ВБА-редакторе Outlook'a в пункте меню Tools есть такая фигня — References, там как раз и указываются ссылки на библиотеки... И Outlook не экспресс, а офисовский
Вот теперь понятно.
Фигня — References — дает тебе доступ к Type Library тех объектов, которые ты должен создавать, но она АВТОМАТИЧЕСКИ не создает сами объекты. Это-то ты должен делать сам.
Потому и получается, что если объект Ворд ко времени твоего оператора существует — все будет ок. Иначе — будет ошибка.
Проверь вот такой вариант:
... = Application.System ...

Или такой:
If System Is Nothing Then
  ' загрузить объект Ворд
Endif
... = System ...
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.