Это действительно элемент управления ActiveX? - PullRequest
3 голосов
/ 01 сентября 2009

У меня довольно простой блок кода.

Sub Run(Name)
on error resume next
Set objShell = CreateObject("WScript.Shell")
if Err.Number = 429 then
    alert("Invalid Security Level.")
    exit sub
end if
objShell.Run Name
if Err.Number <> 0 then
    Alert("Please verify your Operating System Choice")
end if
Set objShell = Nothing 
End Sub

Я использую это со ссылками на веб-сайте, чтобы пользователь мог дефрагментировать свой жесткий диск с помощью:

<a href="#" onclick="Run('c:\\windows\\system32\\dfrgui.exe')">Defrag Windows Vista</a><br>
<a href="#" onclick="Run('c:\\windows\\system32\\dfrg.msc')">Defrag Windows Server 2003 SE or Windows XP</a>

Как вы можете догадаться .. используя:

Set objShell = CreateObject("WScript.Shell")

Причиняет небольшую проблему, и выдает ошибку, что объект не может быть создан. Я могу зайти в безопасность IE и изменить настройки безопасности на

"Инициализация и сценарий ActiveX элементы управления не помечены как безопасные для сценарии "

в "Подсказка", и он действительно подскажет мне и запустит, когда я нажму да.

Мой вопрос на данный момент:

Так как это не отдельный блок кода, поступающего с asp-сервера (страница htm без кода позади). Действительно ли мне нужно потратить 20 долларов, чтобы подписать его, и как мне это сделать в первую очередь на vbscript на странице htm?

Также ... сайт, на котором это будет реализовано, имеет сертификат SSL. Можно ли каким-то образом интегрировать в существующий сертификат форму?

Все, что я хочу сделать, это иметь ссылки, которые похожи на ...

"Если вы хотите дефрагментировать свой компьютер, нажмите здесь "

"Если вы хотите запустить сканирование диска, нажмите здесь "

И говорить всем нашим клиентам, чтобы они заходили и меняли свои настройки безопасности, не вариант.

1 Ответ

6 голосов
/ 01 сентября 2009

Ваш код не проблема. Когда вы создаете объект "WScript.Shell", IE спрашивает этот элемент управления, безопасен ли он для сценариев. Объект возвращает «Нет». Вот почему ваш код не работает. Пока вы используете "WScript.Shell", у вас будет проблема.

Одним из способов решения этой проблемы является создание собственного элемента управления ActiveX, помеченного как «безопасный для сценариев», но тогда вам нужно будет заставить всех своих пользователей установить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...