我有一个相当简单的代码块。
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 安全并更改安全设置,
"Initialize and script ActiveX controls not marked as safe for scripting"
到“提示”,当我单击"is"时,它实际上会提示我并运行。
此时我的问题是;
因为这不是来自 asp 服务器的单独代码块(htm 页面后面没有代码)。我真的需要花费 20 美元来获得签名吗?首先我该如何在 htm 页面的 vbscript 上做到这一点?
此外..将实现此功能的站点确实有 SSL 证书。是否可以以某种方式集成到现有的证书中?
我想要做的就是拥有类似于...的链接
"If you want to defrag your computer, click here"
"If you want to run a disk scan, click here"
告诉我们所有的客户进入并更改他们的安全设置并不是一种选择。
最佳答案
你的代码不是问题。当您创建“WScript.Shell”对象时,IE 会询问该控件对于脚本编写是否安全。对象返回“否”。这就是为什么你的代码不起作用。只要你使用“WScript.Shell”就会遇到这个问题。
解决此问题的一种方法是创建您自己的 ActiveX 控件,并将其标记为“可安全编写脚本”,但随后您必须让所有用户安装它。
关于activex - 它真的是一个activex控件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1363095/