c# - Windows Xp 上的 Microsoft.Windows.ActCtx

标签 c# javascript vbscript wsh regfreecom

最近我非常忙于开发 activex/com 应用程序。我们的一些客户在受到严格限制的 Windows 环境下工作。所以我决定让我的申请免注册。我发现 genman32.exe 可以轻松创建 list (mt.exe 也很有用)。一切都很顺利,但是当我尝试从 wsh(vbs 或 js)执行我的应用程序时 - 这对我的情况来说是有义务的,因为应用程序在 com 服务器上运行 -

set o = CreateObject("Application.Interface") 

// No object reference 

因为“CreateObject”查找注册表但没有注册表条目:) 然后我搜索并找到了“actctx”。在 dot.net 环境中很容易实现。但是我必须从 wsh(vbs 或 js)执行我的应用程序;)所以我决定稍微搜索一下然后找到

set o = CreateObject("Microsoft.Windows.ActCtx")
o.manifest = "L:\\Application.dll.manifest"
set app = o.CreateObject("Application.Interface")
app.Launch() // which is my executing function

问题 - “Microsoft.Windows.ActCtx”界面在 Windows Xp 机器中不可用,即使在 SP3 中也是如此 - 微软从不让它变得容易 - 这个问题有什么解决办法吗?您知道创建该界面的任何其他方法或 Windows 更新吗?

最佳答案

我发现了 list 的问题。我会将其分享给可能遇到类似问题的任何其他人。

请注意,将此属性与“Microsoft.Windows.ActCtx”接口(interface)一起使用时,您必须在 list 中指定 progid=""属性,否则会出现 ActiveX 组件无法创建对象错误。

<comClass
clsid="{ED59F192-EF2E-4BCC-95EB-85A8C5C65326}"
progid="myclass.process"
threadingModel = "Apartment" />

下面的 list 示例应该让您启动并运行 :)

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" 
  manifestVersion="1.0">

<assemblyIdentity
   type="win32"
   name="myclass"
   version="1.0.0.0"/>

<file name = "myclass.dll">

<comClass
    clsid="{ED59F192-EF2E-4BCC-95EB-85A8C5C65326}"
    progid="myclass.process"
    threadingModel = "Apartment" />

<typelib tlbid="{7AE20C3A-48C2-42C1-A68D-A1C3EB0A2C65}"
       version="1.0" helpdir=""/>

</file>

<comInterfaceExternalProxyStub 
    name="_PROCESS" 
    iid="{187D0811-470D-44C0-B68C-C1C7F3EEFDA0}"
    proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"
    baseInterface="{00000000-0000-0000-C000-000000000046}"
    tlbid = "{7AE20C3A-48C2-42C1-A68D-A1C3EB0A2C65}" />

</assembly>

关于c# - Windows Xp 上的 Microsoft.Windows.ActCtx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/979567/

相关文章:

c# - 如何从 IEnumerable 获取模型元数据?

javascript - 即使 isactive 为 false,ng-switch 也不起作用

java - 通过JACOB获取java中VBScript(WMI)方法设置的输出参数值

javascript - 无法理解 domEvent 的工作原理

javascript - 使用带有空输入 js 的 shift

c# - CodeFluent 与 Interop.MSScriptControl.dll

string - VBscript 中是否有 "\n"等效项?

c# - ExecuteReader等待操作超时错误

c# - ASP.NET MVC如何从应用程序中删除ViewState?

c# - asp.net 身份 SetEmailConfirmedAsync