Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
9 / 9 / 7
Регистрация: 01.03.2015
Сообщений: 182

Запустить exe файл из ресурсов не создавая временный файл

03.09.2016, 14:02. Показов 8129. Ответов 87
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
у меня есть в ресурсах массив байтов, который по сути является .exe файлом. мне нужно запустить это массив байтов как .exe файл. Такое решение не предлагать: "Создать файл, записать в него массив байтов и запустить файл", т.к. мне это желательно сделать не создавая лишних файлов

Добавлено через 5 минут
запуск должен быть с параметрами
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.09.2016, 14:02
Ответы с готовыми решениями:

Запустить exe-файл из ресурсов
Всем доброго времени суток. У меня возникла потребность в запуске экзкшного файла который находится в ресурсах. Необходимо вытащить...

Как запустить файл exe из ресурсов
я запихнул файл exe в ресурс в basic теперь мне надо что бы при нажатии на button этот ресурс воспроизвелся!!!!

Как запустить exe файл из ресурсов в RAD Studio XE6
Здравствуйте, помогите мне, я в RAD Studio XE6 добавил ехе файл в ресурсы таким вот образом project=> Resources and Inages=> add и...

87
Фрилансер
735 / 352 / 96
Регистрация: 05.05.2014
Сообщений: 2,621
03.09.2016, 14:04
Любая программа - это набор инструкций, а не массив байт. любую программу нужно начинать выполнять, начиная с точки входа в программу, а не рассматривать ее как массив байт. Т.к. массив байт - это всего лишь 1 и 0 в оперативной памяти.
0
9 / 9 / 7
Регистрация: 01.03.2015
Сообщений: 182
03.09.2016, 14:04  [ТС]
отношение к запускаемому файла я не имею, поэтому я не знаю имена классов, пространства имен и т.д. Отсюда следует данный сопсоб не походит
C#
1
2
3
4
5
 Assembly asm = Assembly.Load(data);
            Type t = asm.GetType("Test.Program");
            MethodInfo mi = t.GetMethod("Main", BindingFlags.NonPublic|BindingFlags.Static);
            object[] strArgs = new object[] { new string[] { null } };
            mi.Invoke(null, strArgs);
0
Фрилансер
735 / 352 / 96
Регистрация: 05.05.2014
Сообщений: 2,621
03.09.2016, 14:05
И вообще это лучше у asm'овцев спросить.
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,228
03.09.2016, 14:17
Вот небольшой набросок:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
static void Main(string[] args)
        {
            Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("pathToResource");
 
            if (stream != null)
            {
                byte[] data = new byte[stream.Length];
                stream.Read(data, 0, data.Length);
                var assembly = Assembly.Load(data);
 
                var @params = assembly.EntryPoint.GetParameters();
 
                var arguments = new List<Object>();
 
                // далее нужно перебрать все параметры, создав аргумент для каждого параметра
                foreach (var param  in @params)
                {
                   //
                }
                
                // далее просто вызвать точку входа с этими аргументами
 
            }
0
1 / 1 / 0
Регистрация: 01.11.2016
Сообщений: 57
01.09.2025, 16:56
IamRain,
ну хорошо, не надо танцев с бубнами. Мне надо сделатьт программу (vb.net) которая при некотором условии вызывает другую чужую программу файл которой юзер не видит. Может быть этот файл и не надо в проект включать как массив byte? Но где его разместить и как к нему обратиться, помогите плз
0
108 / 72 / 6
Регистрация: 08.08.2025
Сообщений: 716
01.09.2025, 17:18
Это работает так.
Винда смотрит заголовок ЕХЕ, резервирует память под код, данные, ресурсы. Готовит регистры, смотрит точку входа кода, и отдает туда управление.
В СОМ файлах было проще, там все помещалось в 64 кБ, заголовка не было и сразу начинался код, там все автоматом работало.
Сейчас Винда запрещает отдать управление в данные, потому что это не код, возникает ошибка.
1
sleep
 Аватар для I can
4931 / 4593 / 840
Регистрация: 13.04.2015
Сообщений: 9,753
01.09.2025, 17:42
a380, ты кому отвечаешь? Если little hacker-у, то он последний раз был на форуме 9 лет назад.
А если Ashaxm-у, то он просто влез в чужую тему, и ему нужно всего лишь запустить
Цитата Сообщение от Ashaxm Посмотреть сообщение
другую чужую программу
.
0
 Аватар для volodin661
6686 / 2278 / 347
Регистрация: 10.12.2013
Сообщений: 7,875
01.09.2025, 17:58
Цитата Сообщение от Ashaxm Посмотреть сообщение
Но где его разместить
NTFS-stream
1
108 / 72 / 6
Регистрация: 08.08.2025
Сообщений: 716
01.09.2025, 18:04
Конечно Ashaxm.
Он спрашивал
Цитата Сообщение от Ashaxm Посмотреть сообщение
Может быть этот файл и не надо в проект включать как массив byte?
А так, конечно спрятать файл подальше и запустить. Или переименовать расширение, Винда запустит его с большой вероятность как ЕХЕ
0
 Аватар для volodin661
6686 / 2278 / 347
Регистрация: 10.12.2013
Сообщений: 7,875
01.09.2025, 18:31
Цитата Сообщение от a380 Посмотреть сообщение
Или переименовать расширение, Винда запустит его с большой вероятность как ЕХЕ
нет
0
108 / 72 / 6
Регистрация: 08.08.2025
Сообщений: 716
01.09.2025, 18:34
Цитата Сообщение от volodin661 Посмотреть сообщение
нет
Почему ?
Цитата Сообщение от volodin661 Посмотреть сообщение
NTFS-stream
Цитата Сообщение от a380 Посмотреть сообщение
Винда запрещает отдать управление в данные, потому что это не код, возникает ошибка.
0
1 / 1 / 0
Регистрация: 01.11.2016
Сообщений: 57
01.09.2025, 18:35
Цитата Сообщение от volodin661 Посмотреть сообщение
NTFS-stream
если можно немного подробнее плз
0
 Аватар для volodin661
6686 / 2278 / 347
Регистрация: 10.12.2013
Сообщений: 7,875
01.09.2025, 18:39
Ashaxm, вместо меня сегодня на сайте дежурит Вселенский Разум, попробуй с ним.
0
Эксперт .NET
 Аватар для Rius
13114 / 7675 / 1674
Регистрация: 25.05.2015
Сообщений: 23,410
Записей в блоге: 14
01.09.2025, 18:40
вызывает другую чужую программу файл которой юзер не видит
Вообще, в некоторых случаях можно, но попахивает вирусописательством, так что нельзя.
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
01.09.2025, 18:46
Ashaxm, если это не системная программа, то размещайте рядом, можно в отдельной папке. Есть подход когда в настройках вашей основной программы можно указать путь к запускаемой. Что либо ныкать от юзера смысла нет от слова "совсем".

На всякий, запуск в текущем процессе сторонней программы очень фиговая мысль априори. Любая прога пишется из расчета, что она будет работать в своём выделенном процессе, а не втискиваться в существующий. Ну и я не слышал чтобы в винде жестко ограничивали количество запускаемых процессов.
0
 Аватар для volodin661
6686 / 2278 / 347
Регистрация: 10.12.2013
Сообщений: 7,875
01.09.2025, 18:56
Цитата Сообщение от Wolfdp Посмотреть сообщение
Любая прога пишется из расчета, что она будет работать в своём выделенном процессе, а не втискиваться в существующий
любопытно, неужто WinAPI CreateProcess умеет втискивать новый процесс в существующий ??
0
1 / 1 / 0
Регистрация: 01.11.2016
Сообщений: 57
01.09.2025, 19:06
Спасибо всем кто подключился. Я был неправ когда влез в чужую тему. Может быть есть более подходящая в каком-то разделе. Я не думал что это может быть сложный вопрос, но а380 объяснил.
Хранить и записывать на диске исходный ехе-файл я не хочу. Может быть в пректе VS есть другое место где его поместить кроме ресурсов. Или может быть поместить в ресурсы проекта оболочки как byte а при выполнении условия переименовать в .ехе
и как-то запустить? например Shell() хоть она и не очень удобная т.к. надо бы оболочку закрыть.

Добавлено через 5 минут
Дело не в вирусописании а в коммерческих секретах
0
108 / 72 / 6
Регистрация: 08.08.2025
Сообщений: 716
01.09.2025, 19:14
Можно конечно пометить данные как код, оттуда запускать, но это уже...
0
1 / 1 / 0
Регистрация: 01.11.2016
Сообщений: 57
01.09.2025, 19:17
Код как данные для интерпретатора? ну это уж дюже круто...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.09.2025, 19:17
Помогаю со студенческими работами здесь

Запустить exe-файл и нажать на кнопку этого exe (файл delphi)
Как осуществить с помощью php: На сайте нажимаю кнопку, далее, после нажатия: 1) идет запуск exe (delphi файл) на сервере 2)...

Запустить BAT-файл из ресурсов
Нужно склеить (склеить могу) bat и готовый exe проекта, что прописать в проект, что бы при нажатии на кнопку запускалась эта команда?

Как запустить vbs файл из ресурсов?
Как запустить vbs файл из ресурсов ?

Как запустить VBS файл из ресурсов?
Здравствуйте уважаемые, мне нужно запустить 1 VBS файл из ресурсов и до меня не доходит как. Видел такой код: ...

Как запустить из ресурсов Торрент-файл
Я залил в ресурсы &quot;Торрент файл&quot; Как мне осуществить его открытие на кнопку? Во 1: Что бы (Торрент файл) Был в строен в саму...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru