2017-08-16 20 views
1

所以我加入了资源,我的解决方案(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 

并与在同一目录中的XML一个BAT文件此命令的工作运行它,但我想将它添加到我的WPF所以当我选择菜单选项并点击运行按钮以激活该进程,它将从我添加为资源的xml中提取配置文件。

我已经看过其他代码谈谈在编译或运行,但没有加载嵌入的资源似乎为我工作。请给我一些线索,我需要做的,让我的代码相同的,所以选择一个菜单项,然后打运行将启动它,它需要使用加载配置文件嵌入的资源。

感谢您的帮助和建议,

tmitcham

+0

嗯,你的问题的根源是,你不能让一些嵌入式XML?为什么不发布应该获取XML的代码?这可能是我误解了,但似乎你在这里发布的所有内容都只是围绕真正问题的噪音。 –

+0

/K的netsh WLAN添加会员文件名= atoksvli.xml用户=所有&sc配置WLANSVC开始=自动&净开始WLANSVC是RUN_CMD之后将在()中的自变量,激活该过程。我曾尝试使用有关大会和System.IO,的System.Reflection但似乎在加载嵌入资源工作,所以参数会打我是这样假设是在当WPF就是一切被加载Temp文件夹中加载嵌入资源指出错误代码跑。除此之外,我不知道该从哪里开始。 (感谢评论) – tmitcham

+0

BAT文件将使用环境变量,而Process不会。所以你需要包含netsh和atoksvli.xml的完整路径名称 – jdweng

回答

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 "); 
       } 

感谢所有伟大的意见和建议,让我想到要问什么和在哪里寻找。