创建一个仅提供通过javascript调用的函数的ActiveX控件.最好的方法
Creating an ActiveX-Control that only provides functions to be called via javascript. Best way to do it?
我以前没有创建ActiveX控件的任何经验。关于2008年以前的主题的信息非常稀少,已经过时,而且往往毫无帮助。
我要做的事:
创建一个网站,显示详细的客户端系统信息(比如可用的硬盘空间和确切的CPU等等)。所有这些都必须在不下载/安装任何东西的情况下实现(必须在新安装的XP SP2上运行)。他们认为ActiveX不是下载什么东西,所以这似乎是解决这个问题的唯一方法。我很清楚跨越浏览器/客户端和ActiveX之间的界限是多么愚蠢,但我对此没有发言权。
我的想法:
编写一个不可见的ActiveX控件,该控件提供要由javascript调用的函数并返回字符串。当调用函数时,控件所做的就是通过WMI查找请求的信息,并将其作为字符串返回给javascript,然后javascript将结果写入页面(因此控件不需要影响网页)。
我的实际问题:
实现这一点最简单的方法是什么?我知道C#、Java、C++。C#和Java不起作用,因为它们需要下载/安装(.NET/JVM)。C++通过MFC编写ActiveX控件似乎很令人困惑。我发现了这一点,但对于所有的GUI和gif内容来说,它似乎过于复杂。它并没有展示如何通过javascript公开要使用的函数。有人知道这方面的教程吗?另一种选择是使用VB,但VS2010似乎没有提供创建ActiveX控件的模板。
所以。。在C++或VB中公开javascript使用的函数的最简单方法是什么?
您指出的代码项目链接是创建activex控件的一个很好的例子。记住,即使在c++中,浏览器也会第一次尝试下载并安装ActiveX控件。
您可以创建MFC ActiveX控件并在OnPaint中对代码进行注释。然后你可以在你的idl文件中创建函数,比如
dispinterface _DCSDC_Sample
{
properties:
methods:
[id(DISPID_ABOUTBOX)] void AboutBox();
[id(1)] bool SendData([in]BSTR portName,[in] VARIANT* Buffer, LONG dwSize);
};
以及在派生COleControl的类文件中。然后您可以在您的cpp文件中实现您的函数。
- 函数调用中参数的顺序重要吗
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- 变量没有改变?通过向量的函数调用
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 是否有C++编译器选项允许激进地删除所有函数调用,并将参数传递给具有空体的函数
- 我知道函数调用中存在歧义.有没有办法调用foo()函数
- 模板函数调用
- 获取从C++中同一类中的构造函数调用的方法返回的值
- 析构函数调用
- 成员函数调用和C++对象模型
- 使用共享指针的函数调用,其对象应为 const
- C++:编译时检查匹配的函数调用对?
- 函数调用C++中的参数太少
- 来自 DLL 的函数调用 [表观调用的括号前面的表达式必须具有(指向-)函数类型]
- 返回指向对象的指针的函数调用是否为 prvalue?
- C++ 如何重载 [] 运算符并进行函数调用
- 代码的效率. 转到和函数调用
- 是同一作用域的函数部分中的函数调用
- 如何封装一个函数,以便它只能由同一类中的一个其他函数调用?
- 类型擦除的std::function与虚拟函数调用的开销