我需要在我的C#Windows应用程序中调用VBScript文件(.vbs文件扩展名).我怎样才能做到这一点?
在Visual Studio中有一个用于访问VBScript文件的加载项.但我需要在后面的代码中访问脚本.这该怎么做?
我刚刚在我的Windows Server 2008服务器上安装了第三方应用程序,我得到了
ActiveX组件无法创建对象
我尝试使用CreateObjectVBScript中的访问时出现错误消息.
它肯定已安装并存在于"程序和功能"下.有没有人有一个我可以检查的事项清单,以弄清楚发生了什么?
我现在尝试使用regsvr32.exe /i bob.dll建议注册DLL 但我收到此错误:
模块"Bob.dll"已加载,但未找到入口点DllRegisterServer.
确保"Bob.dll"是有效的DLL或OCX文件,然后再试一次.
我应该注意到,这是64位计算机上的32位应用程序.它也可以在我的机器上运行,这是Windows XP 32位.
我尝试了以下带有两个脚本的HTML页面:
<html>
…
<body>
<script type="text/javascript">
alert ('Javascript');
</script>
<script type="text/vbscript">
msgbox "Vbscript"
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在Windows 8.1预览+ Internet Explorer 11上,JavaScript工作,VBScript没有.
在(Windows 8 + IE10),(Windows 7 + IE9)上,这两个脚本有效.
我没有找到任何有关Internet Explorer 11中VBScript支持结束的信息,是吗?
在每个讨论VBScript的站点上,' &'运算符被列为字符串连接运算符.但是,在我最近继承的一些代码中,我看到' +'运算符正在使用,我没有看到任何错误.这是一个公认的替代方案吗
我有两个函数,我试图在第二个函数中使用一个函数的结果.这是else部分,但它不是为"cus_number"打印任何东西.
如何打印"cus_number"?
Function getNumber
number = "423"
End Function
cus_number = getNumber
If (IsNull(cus_number)) Then
WScript.Echo "Number is null"
Else
WScript.Echo "cus_number : " & cus_number
End If
Run Code Online (Sandbox Code Playgroud) C#和VB.NET中存在"单行if语句",与以下格式的许多其他编程和脚本语言一样
lunchLocation = (dayOfTheWeek == "Tuesday") ? "Fuddruckers" : "Food Court";
Run Code Online (Sandbox Code Playgroud)
有没有人知道甚至在VBScript中有什么是extact语法?
我想检查文件是否存在,如果存在,我想打开它并阅读第1行,
如果文件不存在或文件没有内容,那么我想静默失败而不让任何人知道发生了错误.
我在VBScript中遇到了一些奇怪的事情.在编写我希望通过引用传递参数的过程时,调用此过程的方式会改变参数的传递方式!
这是一个例子:
Sub IncrementByRef(ByRef Value)
Value = Value + 1
End Sub
Sub IncrementByVal(ByVal Value)
Value = Value + 1
End Sub
Dim Num
Num = 10
WScript.Echo "Num : " & Num
IncrementByRef(Num) : WScript.Echo "IncrementByRef(Num) : " & Num
IncrementByRef Num : WScript.Echo "IncrementByRef Num : " & Num
IncrementByVal(Num) : WScript.Echo "IncrementByVal(Num) : " & Num
IncrementByVal Num : WScript.Echo "IncrementByVal Num : " & Num
Run Code Online (Sandbox Code Playgroud)
这是输出:
U:\>cscript //nologo byrefbyval.vbs
Num : 10
IncrementByRef(Num) : 10
IncrementByRef …Run Code Online (Sandbox Code Playgroud) 我希望能够通过命令行运行程序,我想用VbScript启动它.我还想获取命令行的输出并将其分配给变量,我希望所有这些都可以在没有cmd窗口弹出的情况下以静默方式完成.我分别管理了两件事但不在一起.这是我到目前为止所得到的.从cmd运行命令并获取输出:
Dim WshShell, oExec
Set WshShell = WScript.CreateObject("WScript.Shell")
Set oExec = WshShell.Exec("C:\snmpget -c public -v 2c 10.1.1.2 .1.3.6.1.4.1.6798.3.1.1.1.5.1")
x = oExec.StdOut.ReadLine
Wscript.Echo x
Run Code Online (Sandbox Code Playgroud)
上面的脚本工作并做我想要的,除了cmd弹出一小段时间.
这是一个静默运行但不会获取输出的脚本
Set WshShell = WScript.CreateObject("WScript.Shell")
Return = WshShell.Run("C:\snmpset -c public -v 2c -t 0 10.1.1.2 .1.3.6.1.4.1.6798.3.1.1.1.7.1 i 1", 0, true)
Run Code Online (Sandbox Code Playgroud)
有没有办法让这两个一起工作?
让我告诉你我为什么要这样做的背景.我基本上每隔5-10分钟对一个单元进行一次轮询,我会在发生某种情况时让脚本发送电子邮件或抛出一个消息框,但我不希望看到cmd行整天在我的计算机上弹出.有什么建议?谢谢
vbscript ×10
.net ×1
.net-2.0 ×1
activex ×1
asp-classic ×1
asp.net ×1
c# ×1
command-line ×1
debugging ×1
dll ×1
function ×1
if-statement ×1
return-value ×1
silent ×1
string ×1
syntax ×1
wsh ×1