Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Как запустить любой файл внутри exe? (http://forum.oszone.net/showthread.php?t=196102)

fooger 08-01-2011 17:59 1583882

Как запустить любой файл внутри exe?
 
Здравствуйте. Нужно при запуске exe файла запустить любой файл внутри exe, это может быть как и картинка, так и exe файл. Как и на каком языке программирования это возможно сделать? Не нужно никакого извлечения файлов куда-то, и не нужно никакого интерфейса, все должно происходить в silent (скрытом, невидимом) режиме. Большое спасибо.

Beyound 08-01-2011 19:34 1583940

слабо понятно что ты хочешь, особенно твое silent - но почитай про это например ShellExecute
язык не важен - главное подключить нужную библиотеку.

Wily 08-01-2011 19:54 1583952

Ну конечно,язык не важен..?! Еще как важен.


Я понимаю открыть изображение или звук из самой программы,но как запустить исполняемый файл..?!
Может быть я конечно чего-то и не знаю,но по моему его нужно сначала извлечь что бы запустить.

Любезный 08-01-2011 20:00 1583956

Поясните, что имеется в виду. Извлечь файл из ресурса и запустить, или открыть другой внешний файл?

fooger 08-01-2011 20:34 1583973

Всем спасибо, попытаюсь объяснить. Нужно следующее
Создать exe файл.
При его запуске (двойной клик или enter), этот файл должен запустить указанный ранее файл в середине себя. Например в exe -- есть файл "image.jpg". При запуске exe нужно запустить файл в середине себя "image.jpg", если возможно (а я думаю что возможно), то без извлечения файла "image.jpg" куда-то. Также нужно чтобы вместо файла "image.jpg", мог быть любой другой файл, например: "audio.mp3" или "program.exe".
То что я писал silent - это значит чтобы ничего при этом на экран не выводилось.
Как это осуществить?

Любезный 08-01-2011 21:09 1583987

Это как? Чтобы jpg открылся и при этом не отобразился? *****так?

Wily 08-01-2011 21:17 1583994

Вот и я про то же,зачем открывать изображение в скрытом виде..?!

Если нужно запустить файл в скрытом виде,используйте "ShellExecute" как сказал Beyound.
В справочнике по WinApi есть описание..!

Прочтите тут..

Любезный 08-01-2011 21:18 1583996

Думаю, ЛЮБОЙ файл без извлечения не запустить - нет гарантии, что, например, exe будет адекватно работать, если, например, он что-то пишет в собственный каталог..

fooger 09-01-2011 17:33 1584532

В скрытом виде должна работать только сама "родительская" exe. То есть в случае ошибки или еще чего-то там чтобы на экран ничего не выводилось, а то мне даже уже и сделать инсталляхой с интерфейсом предлагали)).
Любезный, писать в собственный каталог ничего не нужно, только чтение.
Все что должна делать exe-ха это запускать файл в середине себя (очень желательно без извлечения!). Запуск чего-то должен происходить штатными средствами, например как функция start в батнике. Чтобы изображение открывалось в установленном по умолчанию просмотрщике, аудио в своем плеере и т.д.
Есть такие программы джойнеры называются. В основном их используют для склейки файлов, например изображения с вирусом.
И при запуске файла который с генерировала программа, оно запускает указанные в середине два(или больше) файла-ов, и я думаю что вряд ли перед запуском этих файлов, exe-ха их куда-от извлекает. Джойнеры это где-то отдаленно то что мне нужно, но они мне не подходят по нескольким причинам:
Все джойнеры палятся антивирусами, из за их назначения. Ними все склеивают вирусы, а мне этого(склеивать с вирусом) не нужно.
Во вторых мне нужно не для двух и больше файлов.
В третьих все немного проще мне нужно, чем то что они делают...

Кстати я не программист, по этому помогите с кодом пожалуйста... я только веб-программист. Буду очень благодарен.

Delirium 11-01-2011 01:09 1585782

Любезный, первое предупреждение за некорректные выражения на форуме.
fooger, создаем консольный проект на том же С# - в проект добавляем нужный файл и в свойствах файла (копирование при построении) - выставляем "встраиваемый"/"Embedded". В таком случае файл будет встраиваться в exe при компиляции. В коде запускаем выполнение файла через ShellExecute.

fooger 11-01-2011 12:29 1586020

Delirium, большое спасибо, по моему то что надо, но можно чу-чуть по подробнее, так как я не программист..?
Если можно и не сложно, то напишите код пожалуйста, я не думаю что он длинный)
P.S. в какой программе писать нужно код?

Drongo 11-01-2011 18:09 1586267

fooger, [решено] Кирилица в WIN32 GUI приложениях независимо от настроек в контрольной панели -> с 14-го по 19-й комментарии.

wint1000 13-01-2011 22:20 1588119

Привет fooger. Так как вы програграммист, хотя и не в более "кодовых" языках, если их можно так назвать, но стиль программирования вы должны понимать. Это меня удивило. Как и зачем вам кусок кода. Языков ведь несколько. И каждая такая часть кода должна быть оптимизированна со своим языком. Более того такие "ссыли" привязанны ко всей программе по определённым правилам. В плюсах, ссылка на открываемый файл и т.д. На вопрос можно ли сделать? Можно почти всё. Главное что бы написать код надо знать, каким образом открыть. Вы ведь просто запустите внешний код. Про запуск функции, вообще прописанно в азах программирования. Функция может запустить хоть саму себя. Пишеш ВЫЗОВ с параметрами, какими хочеш внутри основного тела и компилятор создаст копию точно такой же функции. И т.д. Любое обращение, пожалуйста. Хоть скрыто (подразумевается без окна) хоть открыто. Но часть кода, написанная любым человеком, без всего кода (если, как пишите - непрограммист) будет просто лиш набором знаков.

fooger 18-01-2011 18:16 1591613

Привет wint1000. Я программирую на PHP, JavaScript(AJAX), HTML, CSS. Стиль программирования я кончено понимаю, но допустим если есть какой-нибудь батник, то разобрать что в нем написано - я еще смогу(и даже минимально подправить его под себя), но сам написать не смогу.
Я не понимаю что Вас удивило, в том что я нуждаюсь в данном коде?
Мне все равно на каком языке программирования это будет написано (C++,C#,Delphi и т.д.), главное что бы работало. Насколько я понимаю - то что мне требуется скорее всего занимает лишь пару строк кода, и в нем практически нечего "оптимизировать", если его конкретно писать на конкретном языке. Если кто-то бы мне написал такой код (за что я был бы очень благодарен этому человеку), то я понимаю что выглядело это бы так:
Я открываю программу компилятор, добавляю туда свой нужный файл, добавляю код, в коде вместо названия того файла что там стоял - меняю на свой, и компилирую.
Цитата:

Цитата wint1000
На вопрос можно ли сделать? Можно почти всё. »

- мне в некоторых форумах писали что файл без извлечения ну никак не запустить ))
Мне кажется я только одно не правильно написал, то что мне нужен кусок кода, на самом деле мне нужен целый код, так как я не смогу дописать кусок кода, потому что не умею (надеюсь пока что). ...

Admiral 18-01-2011 18:54 1591634

fooger, да, без извлечения никак, но извлекать то можно и в ОЗУ. Вот только запуск (да и извлечение) программ оттуда не всегда нравится антивирусным программам.
К примеру вот статья на эту тему http://www.wasm.ru/article.php?article=memfile
Больше материала даст поиск по Запуск исполняемого файла из памяти.

По изображению(.jpg) и аудио файле(.mp3) можно было что-то придумать (есть библиотеки которые способны читать прямо из памяти - Gdi+ и Bass соответственно), но при таком условии
Цитата:

Цитата fooger
Чтобы изображение открывалось в установленном по умолчанию просмотрщике, аудио в своем плеере и т.д. »

без сохранения на диск это будет затруднительно.

fooger 18-01-2011 23:56 1591834

Спасибо. Admiral, а то что написал Delirium,
Цитата:

Цитата Delirium
fooger, создаем консольный проект на том же С# - в проект добавляем нужный файл и в свойствах файла (копирование при построении) - выставляем "встраиваемый"/"Embedded". В таком случае файл будет встраиваться в exe при компиляции. В коде запускаем выполнение файла через ShellExecute. »

- это с извлечением или без?

Admiral 19-01-2011 01:05 1591903

fooger, да - (копирование при построении). При чём если не отмечать, файл хоть и будет в ресурсах его нельзя будет запустить - Shell/ShellExecute не поддерживает запуск с ресурсов. Так что придётся это сделать самостоятельно.

Delirium 19-01-2011 01:08 1591913

fooger, в ЛЮБОМ случае будет идти извлечение, просто в моем примере это будет происходить в невидимом режиме, ну и самого встроенного EXE не будет отдельным файлом. А извлечение будет проходить. Чтобы запустить программу, её надо обработать системе, хотя бы для того, чтобы понять, ЧЕМ её запускать.


Время: 04:56.

Время: 04:56.
© OSzone.net 2001-