2012-08-01 97 views
1

我试图打开VBS Windows窗体和有一些困难,:-(VBScript中的CreateObject与参数

这行工作正常(我认为):

Set frmPopup = CreateObject("System.Windows.Forms.Form") 

但是下面就失败Microsoft VBScript运行时错误:与第一线ActiveX组件不能创建对象:System.Drawing.Size'

Set frmPopup.Size = CreateObject("System.Drawing.Size") 
    frmPopup.Size.Width = cmintPSPFormWidth 
    frmPopup.Size.Height = intPopupHeight 

我想这是因为System.Drawing.Size需要的高度和宽度参数规格在通话中接听了吗?

关于使用WWW会谈:

Set frmPopup.Size = new System.Drawing.Size(1,2) 

但是这给了我:变量未定义: '系统'。

我已经从我的.NET 4安装文件夹在System.Windows.Forms.dll和System.Drawing.dll上做了regasm,但它仍然不起作用。有任何想法吗?

+1

大小是一个值类型,您不能创建它的一个对象。无论如何,你不应该得到这么远,Form没有注册为progid。你一定对你的注册表做了一些让人心寒的事情。你需要把它作为一个选项写出来,而不是在C#或vb.net中编写一个封装器。 – 2012-08-01 18:13:37

回答

2

大小是一种方法,而不是ProgID。你可能需要这样的东西:

Set frmPopup = CreateObject("System.Windows.Forms.Form") 
Set frmDrwg = CreateObject("System.Drawing") 
frmDrwg.Size 1, 2 

但是你必须记住,不是所有的.NET对象都可以正确地从VBS实例化。

+0

感谢您的帮助。我无法实现它,所以我会坚持使用我的PowerSmell解决方案:-( – FrinkTheBrave 2012-08-06 11:48:59