2017-08-17 104 views
3

在我的c#中,我当前引用了一个运行批处理文件的vbs文件。我这样做是因为它隐藏了cmd窗口(防止在执行过程中看到它)。我遇到了电脑不会vbs文件的权利问题。无论如何,我有复制在C#中的VBS代码?如何在C#中添加vbs代码

下面是代码

Set oShell = CreateObject ("Wscript.Shell") 
Dim strArgs 
strArgs = "cmd /c LayoutsBackup.bat" 
oShell.Run strArgs, 0, false 
+1

[的Process.Start](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0ahUKEwiM_8jy8t7VAhVkzVQKHfK4C58QFggvMAE&url=https%3A%2F% 2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fsystem.diagnostics.process.start(v%3Dvs.110).aspx&usg = AFQjCNGlAKjUTat56iCorFFRRQ-DH8TPdQ) – crashmstr

回答

0

你可以尝试一个新的控制台项目中下面的代码。通过使用F10步骤,让我知道它是否有帮助。

using System; 
using System.Diagnostics; 

namespace ConsoleApplication13 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      //Set oShell = CreateObject("Wscript.Shell") 
      var shellType = Type.GetTypeFromProgID("Wscript.Shell"); 
      dynamic shell = Activator.CreateInstance(shellType); 
      //Dim strArgs 
      //strArgs = "cmd /c LayoutsBackup.bat" 
      //oShell.Run strArgs, 0, false 
      var startArgs = new ProcessStartInfo 
      { 
       Arguments = @"/c ""C:\YourPathTo\LayoutsBackup.bat""",     FileName = "cmd", 
       UseShellExecute = false 
      }; 
      var shellProcess = Process.Start(startArgs); 
      shellProcess.WaitForExit(); /* optional */ 
     } 
    } 
} 
+1

您可能需要完整的cmd和bat文件的路径名。 – jdweng

+0

@jdweng可能!在我的笔记本电脑上没有。 Win 7 Ent。你也可以尝试“win.exe”。对我而言,这也是有效的。 –

+0

@jdweng您的意思是.bat文件必须位于控制台应用程序的bin \ Debug目录中?我同意。我编辑了答案。谢谢 –