通过按钮点击进程调用和嵌入资源

时间:2017-08-16 15:20:29

标签: c# xml wpf visual-studio-2012 cmd

所以我已经为我的解决方案添加了资源(VS2012(C#))。我已将它们设置为embedded

我写了一个过程:

private void Run_CMD(string arguments);
{
        Process process = new Process();
        process.StartInfo.FileName = "cmd.exe";
        process.StartInfo.Arguments = arguments;
        process.Start();
}

我有一个Menubox,其中一个选项运行该过程及其参数

Run_CMD(Argument Here);

我有其他脚本使用CMD进程并且工作但我尝试运行的脚本引用XML文件来加载无线配置文件。

命令是

/k netsh wlan add profile filename=atoksvli.xml user=all & sc config Wlansvc start= Auto & net Start Wlansvc

这个命令在一个Bat文件中,xml在同一个目录下运行它但是我想将它添加到我的WPF中,所以当我选择菜单选项并按下运行按钮激活该过程时它会拉出配置文件来自我作为资源添加的xml。

我已经看过其他代码,讨论在编译或运行时加载嵌入式资源但似乎没有一个对我有用。请给我一些线索,因为我需要做的是保持我的代码相同,所以选择一个菜单项然后点击run将激活它以及它需要用来加载配置文件的嵌入式资源。

感谢您提供任何帮助和建议,

tmitcham

1 个答案:

答案 0 :(得分:0)

我能够将资源导出到目录,然后运行cmd进程的参数并指向程序中设置的文件位置,然后当程序退出时清除所有目录和创建的文件。

if (Directory.Exists(path))//Does Directory Exist if so then copy and run file
                {
                    String myfile = Properties.Resources.ATOKSVLI;
                    File.WriteAllText (@"C:\SD\\ATOKSVLI.xml", myfile);
                    Run_CMD("/k netsh wlan add profile filename=atoksvli.xml user=all & sc config Wlansvc start= Auto & net Start Wlansvc ");
                }
            else //Create directory then copy file and run
                {
                    DirectoryInfo di = Directory.CreateDirectory(path);
                    String myfile = Properties.Resources.ATOKSVLI;
                    File.WriteAllText(@"C:\SD\\ATOKSVLI.xml", myfile);
                    Run_CMD("/k netsh wlan add profile filename=atoksvli.xml user=all & sc config Wlansvc start= Auto & net Start Wlansvc ");
                }

感谢所有出色的评论和建议让我思考要问什么以及在哪里看。