0

好的,所以我在通过 ac# 程序启动 Windows XP 模式 VM 时遇到问题。我正在使用的命令是vmwindow -file "absolute path to vmcx file都在管理员模式下运行,而且我尝试启动一个包含该命令的 bat 文件,而不是直接运行该命令。希望有人对此有所了解。这是我正在使用的代码:

private void button1_Click(object sender, EventArgs e)
    { 

        Process process = new System.Diagnostics.Process();
        ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();

        startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
        startInfo.FileName = "cmd.exe";
        startInfo.WorkingDirectory = @"<my path>";
        startInfo.Arguments = "/k vmwindow.exe -file \"<path to vcmx file>\\Windows XP Mode.vmcx\"";
        process.StartInfo = startInfo;
        process.Start();
    }
4

2 回答 2

1

您可以做的是使用 Powershell。它具有 Hyper V 控件的本机集成,并且易于从 c# 调用

您可以在此处查看所有 HV-cmdlet

启动机器的简单命令是

Start-VM "Windows 8.1 Pro" -Computername HV-Host1
// etcetc
Stop-VM "Windows 8.1 Pro" -Save

所以这在 C# 中应该是这样的

using (PowerShell PowerShellInstance = PowerShell.Create())
{
    PowerShellInstance.AddScript("Start-VM "Windows 8.1 Pro" -Computername HV-Host1");
}
于 2015-07-15T15:08:21.240 回答
0

可能是因为您编译程序时使用的位数设置。(项目构建选项卡下的“平台目标”和“首选 32 位”设置)。32 位和 64 位进程在 System32 下看到不同的文件。请参阅https://stackoverflow.com/a/950011

于 2015-07-15T15:13:12.703 回答