Tag: vbscript

为什么这个C#COM类可以从VBScript而不是JScript中使用?

考虑下面给出的C#中与自动化兼容的COM库。 它遵循一个共同的COM模式,即具有可见的工厂coclass FooFactory实现ICreateFoos,它创建一个IFoo类型的对象。 FooFactory是类型库中唯一的 coclass。 (工厂模式对COM特别有用,因为它不允许参数化构造函数)。 在下面的代码中,我发现我无法从jscript访问返回的IFoo接口, 除非我使FooImpl类变为ComVisible (通过取消注释注释行;这会导致它在类型库中显示为coclass)。 从VBscript访问它没有这样的问题 。 也就是说,我可以运行这个VBScript: set ff = CreateObject(“jstest.FooFactory”) set foo = ff.CreateFoo(0) foo.Foo 但这个function相同的 JScript失败,错误“C:\ temp \ jstest \ jstest.js(4,1)Microsoft JScript运行时错误:’foo’为null或不是对象”: var ff = new ActiveXObject(“jstest.FooFactory”); var foo = ff.CreateFoo(0) //WScript.Stdout.WriteLine(null==foo) foo.Foo(); 如果我取消注释该行,我可以看到null == foo为false。 为什么会这样? 这是一个错误吗? 请注意,我认为这是一个问题,是JScript和C#/ .net特定实现(可能是IDispatch)的组合,因为我有其他类似的COM服务器 – 用C ++实现 – 不会从JScript中出现这个问题。 如果我在下面的代码中取消注释注释行,使得FooImpl作为coclass可见,那么问题就会消失 – 但我特别不希望这样做,因为我不想暴露实现细节。 […]

在C#中创建GUI并在VBScript中调用

我尝试用C#制作一个带有COM-visible的ActiveX。 它是一个Windows窗体。 我成功地将其构建为dll ActiveX,然后我编写了一个VBScript代码来调用它。 从那之后出现但消失了。 我不知道为什么@@这是我的代码: C#代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; using Microsoft.Win32; using System.Reflection; namespace ActiveXTestLibrary { [ProgId(“ActiveXTestLibrary.UserControl”)] [ClassInterface(ClassInterfaceType.AutoDispatch)] [ComVisible(true)] public partial class UserControl1 : Form { public UserControl1() { InitializeComponent(); } [ComVisible(true)] public void Hello() { this.Show(); } private void radButton1_Click(object […]

如何检测现在是否播放任何video?

如何使用autohotkey , autoit , vbscript , c#或c检测是否正在播放任何video? 可以在任何本地播放器,基于Web的播放器或html5播放器中播放/流式传输video。 我们不知道播放器的名称也可能不在全屏播放器中。 PS。 检测CPU负载可能无法始终提供正确的结果,因此不可接受。

从VBScript调用WebApi方法

我的控制器中有以下web api方法 public HttpResponseMessage PostUpdateCardStatus(CardholderRequest cardholderRequest) { var cardId = cardholderRequest.CardId; switch (cardholderRequest.Action) { case “Enable”: break; case “Disable”: break; } var cardholderResponse = new CardholderResponse(cardholderRequest.RequestId) { Status = “OK” }; var response = Request.CreateResponse(HttpStatusCode.OK, cardholderResponse); return response; } 这就是我从.NET控制台应用程序调用它的方式 using (var client = new HttpClient()) { client.BaseAddress = new Uri(“http://localhost:55208/”); var request = new […]

如何检查是否已安装IIS 6管理兼容性function?

使用VB.NET,C#或VBScript,如何检查运行IIS 7.x的计算机上是否已安装IIS 6管理兼容性function及其子function?

从C#运行vbs Sub

是否可以从ac#应用程序中执行vbs文件中的特定子? 我已经看过创建一个Process然后启动它但是找不到一种方法来指定应该执行脚本文件中的哪个特定子。 有没有办法指定这个或有更好的方法吗? vbs看起来像下面的示例。 我想要的是从C#代码启动test1或test2。 Public Sub test1 msgbox “Hey1” End Sub Public Sub test2 msgbox “Hey2” End Sub

从VBScript调用.NET COM对象

我使用的是VS 2008和Windows 7。 得到一个.NET C#类,它作为COM对象公开。 [Guid(“E5014B85-FCB2-4F0D-95EC-F741395A7923”)] [InterfaceType(ComInterfaceType.InterfaceIsDual)] public interface DSystem { [DispId(1610809354)] void setProperties(IDictionary propertymap); } 从VBScript调用COM对象 dim dSystem set dSystem = CreateObject(“MYCOMOBJECT”) Dim objDictionary Set objDictionary = CreateObject(“System.Collections.Hashtable”) objDictionary.Add “PROP1”, “abc” objDictionary.Add “PROP2”, “zyx” dSystem.setProperties(objDictionary) 一切正常……但是,返回类型从void变为bool [DispId(1610809354)] bool setProperties(IDictionary propertymap); 和 success = dSystem.setProperties(objDictionary) 导致错误 Microsoft VBScript运行时错误“800a0005” 无效的过程调用或参数 .tlb文件似乎没问题 [id(0x6003000a)] HRESULT setProperties( [in] IDictionary* […]

在VBScript中使用vb.net

如何从VBScript调用vb.net DLL中的函数? 我做了以下事情: – 我在vb.net中创建了名为Class1的公共类。 我转到Visual Studio 2008命令提示符并转到我的类dll – C:\ Myapp \ bin \ Debug并输入以下命令tlbexp myDLL.dll之后我得到消息程序集导出到C:\ Myapp \ bin \ Debug \ myDLL。 TLB 在此之后我输入以下命令regasm myDLL.dll并且我收到以下消息RegAsm:警告RA0000:没有注册类型 这就是我class级的样子: Public Class Class1 Public Function ADD(ByVal first As Integer, ByVal sec As Integer) Dim abc As Integer abc = first + sec Return abc End Function Public Function […]

使用Microsoft Scripting Control评估’If’表达式(通过c#)

我有一些c#代码使用Microsoft Scripting Control来评估一些表达式: using MSScriptControl; // references msscript.ocx ScriptControlClass sc = new ScriptControlClass(); sc.Language = “VBScript”; sc.AllowUI = true; try { Console.WriteLine(sc.Eval(txtEx.Text).ToString()); } catch (Exception ex) { Console.WriteLine(ex.Message); } (txtEx是一个简单的文本字段) 数值表达式:“6 + 4”,“cos(34)”,“abs(-99)”,“round(1.234,2)”等都很好 布尔表达式:“true或false”,“1 = 2”没问题 但是我怎样才能评估一个简单的“如果”? 我试过“if(true,2,3)”,“iif(true,2,3)”,“if(true)then then else 3”和“if(true)then then else 3 endif” 有人可以帮我评估简单的条件表达式吗? 任何帮助非常感谢! RH

以编程方式安装证书吊销列表(CRL)

我需要每周下载并安装大约50个CRL,并将它们安装在多个Windows服务器上。 下载是一个简单的部分,有没有办法编写CRL导入过程的脚本?