Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2012, 10:37   #1
Dianochka
Пользователь
 
Регистрация: 29.11.2007
Сообщений: 32
Восклицание Запуск exe(не NET сборка) файла программно!

не знаю как запустить exe файл программно...
т.е. есть считанный EXE файл (к примеру utorrent.exe) хранимый, к примеру, в Stream. Как запустить его не сохраняя его на жестком диске ?
Если есть какие-то варианты или пример кода - за все буду благодарна!
Заранее спасибо.
Dianochka вне форума Ответить с цитированием
Старый 27.05.2012, 11:24   #2
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Код:
        private static void RunInternalExe(string exeName)
        {
            //Get the current assembly
            Assembly assembly = Assembly.GetExecutingAssembly();

            //Get the assembly's root name
            string rootName = assembly.GetName().Name;

            //Get the resource stream
            Stream resourceStream = assembly.GetManifestResourceStream(rootName + "." + exeName);

            //Verify the internal exe exists
            if (resourceStream == null)
                return;

            //Read the raw bytes of the resource
            byte[] resourcesBuffer = new byte[resourceStream.Length];

            resourceStream.Read(resourcesBuffer, 0, resourcesBuffer.Length);
            resourceStream.Close();

            //Load the bytes as an assembly
            Assembly exeAssembly = Assembly.Load(resourcesBuffer);

            //Execute the assembly
            exeAssembly.EntryPoint.Invoke(null, null); //no parameters
        }
Собственно для Вас важны только строки
Код:
byte[] resourcesBuffer = new byte[resourceStream.Length];

            resourceStream.Read(resourcesBuffer, 0, resourcesBuffer.Length);
            resourceStream.Close();

            //Load the bytes as an assembly
            Assembly exeAssembly = Assembly.Load(resourcesBuffer);

            //Execute the assembly
            exeAssembly.EntryPoint.Invoke(null, null); //no parameters
Которые запускают приложение из памяти.
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Старый 27.05.2012, 16:06   #3
Dianochka
Пользователь
 
Регистрация: 29.11.2007
Сообщений: 32
По умолчанию

+1 Спасибо!
Dianochka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск файла (*.exe) в скрытом режиме @san4ez Общие вопросы Delphi 13 05.10.2011 14:01
Запуск Откомпилированого EXE Файла Deman005 Работа с сетью в Delphi 4 03.08.2010 01:57
Как программно извлечь иконку из exe файла Altera Win Api 3 19.07.2008 21:39
Прописать запуск exe-файла Manitu Помощь студентам 4 07.03.2008 10:31
Запуск exe-файла из приложения TerVovik Помощь студентам 4 12.12.2007 16:21