Cубъект не имеет доверия для выполнения указанного действия

Программирование на Visual Basic for Applications
lacinho
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 09.04.2009 (Чт) 21:28

Cубъект не имеет доверия для выполнения указанного действия

Сообщение lacinho » 09.04.2009 (Чт) 21:33

Здравствуйте!

У меня такая проблема: после установки очередного пакета обновления системы безопасности операционной системы перестал работать элемент управления MSFlexGrid, при попытке обращения к нему выдается ошибка "субъект не имеет доверия для выполнения указанного действия". Что с этим делать ума не приложу, весь инет облазил, ничего не нашел. Подскажите, плиз, как можно сию проблему решить?

GDK
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 23.10.2008 (Чт) 16:15

Re: Cубъект не имеет доверия для выполнения указанного действия

Сообщение GDK » 10.04.2009 (Пт) 12:16

А он (MSFlexGrid) зарегистрирован/установлен? По моему дело в этом. У меня тоже часто такие сообщения выводились. Всегда отказывался от использования таких компонентов. А может быть ошибаюсь.

lacinho
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 09.04.2009 (Чт) 21:28

Re: Cубъект не имеет доверия для выполнения указанного действия

Сообщение lacinho » 13.04.2009 (Пн) 15:56

Спасибо всем, кто откликнулся, господа, но, увы, проблема оказалась намного сложнее, и ее решение соответственно тоже :-)))
Если кто-то столкнется с аналогичным вопросом, то действовать пришлось так: вообще эта проблема связана с установкой обновления операционной системы под нумером KB960715, будь оно не ладно, не знаю точно что они там намудрили, но MSFlexGrid версии 6.0, который был мною взят из VS 6.0 SP4, и работал долгие годы безупречно, перестал дышать...
Для начала решения этой незадачи пришлось установить этот контрол версии 6.1.98.13, который поставляется с пакетом обновления SP6, который устанавливается обновлением нумер KB957924, называемый VB6 SP6 Cumulative Update, обращаю внимание на этот аспект, поскольку в обычном SP6, хоть вроде и версия Grid'а там такая-же, но файл сам отличается, и с ним ничего не работает. Говорят, что при установке этого VB6 SP6 Cumulative Update прямо на VB6 перерегистрировать библиотеку не нужно, и прописывать лицензию тоже, но у меня стоял тока контрол, поэтому пришлось с этим повозить вручную. После извлечения msflxgrd.ocx из установочного файла VB6 SP6 Cumulative Update (методика изложена в статье: http://www.tek-tips.com/viewthread.cfm?qid=1531389, там-же есть ссылка на файл для скачивания KB957924) нужно старый из системы вытереть и зарегить новый, используя regsvr32. Далее начинает ругаться на лицензию. Чтобы отвязался, прописываем в реестре ключ: HKEY_CLASSES_ROOT\Licenses\72E67120-5959-11cf-91F6-C2863C385E30 = ibcbbbebqbdbciebmcobmbhifcmciibblgmf
но и этого ему оказалось не достаточно. При попытке добавить контрол на форму вываливается ошибка типа "Элемент не найден". Чтобы он его "нашел", необходимо удалить файл MSFlexGridLib.exd из всех(!) папок на системном диске.
Только после этого вроде заработало. Надеюсь, ничего я в этом описании не перепутал, и это возможно будет повторить, при необходимости, и вам))).
Единственное, что у меня не получилось, так это добавлять этот контрол на форму программно. Раньше работала такая строчка:
Set MSFlexGrid1 = Me.Controls.Add("MSFlexGridLib.MSFlexGrid.1", "MSFlexGrid1")
но после всех проведенных экзекуций, перестала, может, у кого-то получится найти причину, буду признетелен за совет)))

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Cубъект не имеет доверия для выполнения указанного действия

Сообщение alibek » 13.04.2009 (Пн) 16:02

Надо лицензии добавлять, Licenses.Add.
Lasciate ogni speranza, voi ch'entrate.

lacinho
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 09.04.2009 (Чт) 21:28

Re: Cубъект не имеет доверия для выполнения указанного действия

Сообщение lacinho » 14.04.2009 (Вт) 15:04

Он не на лицензию ругался, а говорил, что Invalid Argument, попробовал я по Вашему совету прописаль Licenses, но он эту строчку не понял, написав типа "Неизвестная переменная", выделяя слово "Licenses" в коде, может потому, что у меня VBA?
А еще нашелся один способ со всем этим разобраться, и более простой, и динамическое добавление заработало как и раньше)))
Для этого всего-лишь навсего надо изменить в реестре:
HKLM\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{6262D3A0-531B-11CF-91F6-C2863C385E30}\Compatibility Flags=0


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

    TopList