运行非托管资源

时间:2013-12-08 10:14:24

标签: c# embedded-resource

如何从资源运行非.NET exe? 我想在进程中执行嵌入式资源exe,但我不知道如何或是否可能。 我尝试使用反射之前我注意到它只适用于托管资源,因此,是否可以运行非托管资源而不提取它?我将非常感谢与此相关的任何类型的信息。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

使用http://msdn.microsoft.com/en-us/library/system.diagnostics.process.start(v=vs.110).aspx

应将嵌入资源复制到输出文件夹并使用相对路径

    using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    class MyProcess
    {
        // Opens the Internet Explorer application. 
        void OpenApplication(string myFavoritesPath)
        {
            // Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe");

            // Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath);
        }

        // Opens urls and .html documents using Internet Explorer. 
        void OpenWithArguments()
        {
            // url's are not considered documents. They can only be opened 
            // by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com");

            // Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm");
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp");
        }

        // Uses the ProcessStartInfo class to start new processes, 
        // both in a minimized mode. 
        void OpenWithStartInfo()
        {
            ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
            startInfo.WindowStyle = ProcessWindowStyle.Minimized;

            Process.Start(startInfo);

            startInfo.Arguments = "www.northwindtraders.com";

            Process.Start(startInfo);
        }

        static void Main()
        {
            // Get the path that stores favorite links. 
            string myFavoritesPath =
                Environment.GetFolderPath(Environment.SpecialFolder.Favorites);

            MyProcess myProcess = new MyProcess();

            myProcess.OpenApplication(myFavoritesPath);
            myProcess.OpenWithArguments();
            myProcess.OpenWithStartInfo();
        }
    }
}