它真的是一个activex控件吗?

时间:2009-09-01 15:26:47

标签: activex

我有一个相当简单的代码块。

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美元来签名,我将如何在htm页面的vbscript上首先做到这一点?

此外,将在DOES中实施的网站具有SSL证书。是否有可能以某种形式或形式整合到现有的证书中?

我想做的就是拥有类似......的链接。

  

“如果要对计算机进行碎片整理,   点击这里“

     

“如果要运行磁盘扫描,请单击   这里“

告诉所有客户进入并更改其安全设置不是一种选择。

1 个答案:

答案 0 :(得分:6)

您的代码不是问题。当您创建“WScript.Shell”对象时,IE会询问该控件是否可以安全地编写脚本。该对象返回“否”。这就是你的代码不起作用的原因。只要你使用“WScript.Shell”就会遇到问题。

解决此问题的一种方法是创建自己的ActiveX控件,该控件标记为“可安全执行脚本”,但是您必须让所有用户安装它。