activex - 它真的是一个activex控件吗?

标签 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 安全并更改安全设置,

"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/

相关文章:

c++ - 应用程序之间的通信

javascript - 在浏览器窗口中检测另一个应用程序(包括百分比重叠)

c# - 处理 Rdp ActiveX 最小化事件

javascript - 从 javascript 自动化 Windows 2007 的 Word

javascript - 测试 ActiveX 控件是否安装了 Javascript?

vb6 - 如何将 ActiveX 网格控件 (VB6) 重新编译为 64 位 OCX?

javascript - 如何确定是否启用了 activex 控件?

com - C# COM DLL : do I use Regasm, 或 Regsvr32?