【问题标题】:How to transform some VBScript code to C#如何将一些 VBScript 代码转换为 C#
【发布时间】:2017-08-17 18:26:40
【问题描述】:

在我的 C# 代码中,我目前引用了一个运行批处理文件的 VBS 文件。我这样做是因为它隐藏了 CMD 窗口(防止它在执行期间被看到)。我遇到了 PC 无法执行 VBS 文件的权限问题。

我是否可以在 C# 中复制 VBS 代码?

代码如下:

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

【问题讨论】:

标签: c# vbscript


【解决方案1】:

您可以在新的控制台项目中尝试以下代码。使用 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 */
        }
    }
}

【讨论】:

  • 您可能需要 cmd 和 bat 文件的完整路径名。
  • @jdweng 可能是!在我的笔记本电脑上没有。赢得 7 项。你也可以试试“win.exe”。对我来说这也有效。
  • @jdweng 你的意思是 .bat 文件必须在控制台应用程序的 bin\Debug 目录中吗?我同意。我编辑了答案。谢谢
  • 我试过了,但它不起作用。我只是将 cmd 窗口打开到启动 exe 的位置。
猜你喜欢
  • 1970-01-01
  • 2014-01-03
  • 2010-11-19
  • 2010-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多