Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/29: Рейтинг темы: голосов - 29, средняя оценка - 5.00
-7 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 32

Как вставить внешнюю программу в свой ехе'шник

25.12.2012, 21:10. Показов 5960. Ответов 41
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема такова: мне нужно в программу добавить файл (уже готовый,отдельный exe'шник)
Что бы при нажатии кнопки вылезала программа (тот самый ехе'шник)
я могу сделать кодом
Visual Basic
1
2
3
4
5
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
 
Private Sub Command1_Click()
ShellExecute 0, vbNullString, "C:\" & sFile, vbNullString, vbNullString, vbNormalFocus
End Sub
но хотелось бы чтобы это всё было в одной программе,чтобы был только один файл, а в ней уже все прелести)
Это возможно как-нибудь сделать?!
Помогите пожалуйста)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.12.2012, 21:10
Ответы с готовыми решениями:

Как можно в flash вставить внешнюю картинку с интернета + ссылку?
Перепробовал 3 популярных декомпиляторов, 2 популярных программы с созданием flash. Ну не как не могу найти функции, скрипты...помогите...

Как запустить внешнюю программу?
Добрый день! Есть программа по шифрованию, ее можно запустить из командной строки. Например Программа: Shifr.exe Ключи -r - Шифруем...

Как закрыть внешнюю программу
Uses:Shellapi,Process; ShellExecute(Handle,'Open',pchar('C:\WINDOWS\system32\calc.exe'),nil,nil,1); AProcess:=Tprocess.Create(nil); ...

41
-7 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 32
26.12.2012, 15:57  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Alex77755 Посмотреть сообщение
Выгрузить на диск.
Вот только ньюанс, с которым некогда рабираться.. впрочем об этом я уже писал.
Выкрутился так: после выгрузки скопировал файл. Старый удалил. Новый Call ....
Впрочем в сообщении выше исходник - можешь посмотреть
Понимаете - я нуб) и я в вб вообще не шарю) мне просто нужна программа в которой если тыкнешь на кнопку откроется другая(та что в .res). Только что-бы не было никаких лишних файло (1 exeшник)
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
26.12.2012, 15:58
Смотри пример
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,704
Записей в блоге: 14
26.12.2012, 16:09
И чего паритесь? Я выложил прект (50 строк) - все работает. И Касперский не против...
0
-7 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 32
26.12.2012, 16:25  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
И чего паритесь? Я выложил прект (50 строк) - все работает. И Касперский не против...
что тут то не так?!
Миниатюры
Как вставить внешнюю программу в свой ехе'шник  
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,704
Записей в блоге: 14
26.12.2012, 16:28
Все так, если делать правильно:

1) Скомпилировать prjMain
2) Скомпилировать prjSlave
3) выполнить в ком. строке maker prjMain.exe prjSlave.exe
4) запустить prjMain
0
-7 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 32
26.12.2012, 16:33  [ТС]
не знаю как закрыть тему,все равно ничего не выходит - я вб же не знаю совсем
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,704
Записей в блоге: 14
26.12.2012, 17:01
Цитата Сообщение от saintjeka Посмотреть сообщение
я вб же не знаю совсем
- гм...
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
26.12.2012, 17:08
Цитата Сообщение от Catstail Посмотреть сообщение
И Касперский не против...
Avira против.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,704
Записей в блоге: 14
26.12.2012, 20:42
Цитата Сообщение от Dragokas Посмотреть сообщение
Avira против
- что говорит?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
27.12.2012, 03:43
Alex77755, дык как может работать. Вы открываете #1, а закрываете #f.
Перед 911 -> 91 поставили Exit Sub. Ничего не переименовывает. А дальше открываете 91. (File not exist).
Понимаю, что быстро писали, но все же.

Alex77755, в Вашем примере нельзя понять правильно ли выгрузился EXE. Там в конце файла-исходника МНОГО нулей. Нужно чтобы число байт было некратно 8.

Насчет бага с лишними нулями. Демонстрация в архиве с проверкой MD5. Запустить в VBE, а потом скомпилированный EXE. И хотя 00 казалось бы навредить не могу, я уже стыкался с программами, которые такое не любят (скорее всего проверяют свою целостность перед запуском).

Catstail, в Ваш финальный вариант вижу добавлен kill fnam$, но на моей системе почему-то ОС не успевает закрыть хендл. Получаю ошибку Access Error. Нажимаю повторно F8 -> удалило, ок.
Уважаю Брюса Маккини, но пришлось заменить
Visual Basic
Process.ExecPrg fnam$, "", RC&, vbNormalFocus
на
Visual Basic
RC& = CreateObject("WScript.Shell").Run(fnam$, 1, True)
и т.о. избавился от ошибки.

Итак, результаты повторной антивирусной проверки (по версии virustotal.com) составных частей проекта конкатенации бинарников от Catstail:
Кликните здесь для просмотра всего текста
maker.exe - 1 / 46 (AntiVir TR/Dropper.Gen) ссылка
Чистый prjMain - 0 / 46 ссылка
Испытуемый RemoveDrive.exe - 0 / 46 ссылка
prjMain + RemoveDrive - 2 / 46 (ByteHero, TrendMicro-HouseCall) - уже лучше, чем наблюдалось раньше. ссылка

Поэтому вынужден извиниться, некоторые антивирусы уже убрали из своих методов детектирования данный способ присоединения ресурса.
Вложения
Тип файла: rar Выгрузка файла из ресурса.rar (63.9 Кб, 16 просмотров)
1
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
27.12.2012, 04:35
Alex77755, в Вашем примере нельзя понять правильно ли выгрузился EXE.
Да мне как-то по барабану как он выгрузился.
Просто нажал кнопку выгрузить он выгрузился. Нажал кнопку запустить выгруженный файл он запустился.
Просто показал пример выгрузки и запуска
А правильно он выгрузился или нет - эте его личные проблемы. Антивирус молчит. ни с какими другими проблемами не сталкивался.
А то что в данном примере допустил опечатку и файл остался не зарытым, то проще было скопировать и запустить копию(что и было сделано в примере). Искат опечатку было некогда хотя должен был догадаться, почему программа держит файл
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
27.12.2012, 04:35
Цитата Сообщение от saintjeka Посмотреть сообщение
что тут то не так?!
Боже мой. Бат-файл сможете скопировать в папку с проектом и перетянуть на него нужную Вам EXE?

Когда-то Catstail, давал ключи для трансляции через vb6.exe.
Кликните здесь для просмотра всего текста
Допускаю неправильный поиск в реестре файла "c:\Program Files (x86)\Microsoft Visual Studio\VB98\VB6.EXE" на ОС Win XP.
Тогда вручную его укажите вместо %vb6path% в строке № 16 обязательно в кавычках, как показал выше.
(код проверен на ос Win7)
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@echo off
Echo Working...
if not exist prjMain.vbp Echo You must put this script into the project's folder& pause& Goto :eof
if not exist maker.vbp Echo You must put this script into the project's folder& pause& Goto :eof
if "%cd%\" neq "%~dp1" copy "%~dpnx1" "%cd%\"
Call :Compiler "%cd%\prjMain.vbp"
Call :Compiler "%cd%\maker.vbp"
Start "" /wait maker.exe prjMain.exe %~nx1
Start "" prjMain.exe
Goto :eof
 
:Compiler "%SrcFile%"
For /F "Tokens=3*" %%A In ('Reg Query "HKCR\Applications\VB6.EXE\shell\open\command" /ve') Do Set vb6path=%%B
For %%A in (%vb6path%) do Set vb6path=%%A& Goto :nxt
:nxt
Set vb6exec=%vb6path% /m "%~dpnx1" /outdir "%~dp1" /out "%~dp1compile.log"
Start "VB6 Compiling Script" /wait /min %vb6exec%
Exit /B


Alex77755, ну когда Вы выложили 2 бинарника, тяжело было искать ошибку в исходном коде, которого не было. Согласитесь.
Мы вроде как пишем качественный код. А примеров распаковки ресурсов навалом. Просто ТС, как это всегда бывает, лень было нажать кнопку "Поиск".
Вложения
Тип файла: rar CompileVB6.rar (479 байт, 15 просмотров)
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
27.12.2012, 04:40
А кто спорит?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
27.12.2012, 04:46
Я к тому, что качественный код предполагает всесторонний подход, а именно:
1) понять, почему возникает такая ошибка;
2) найти оптимальные способы ее решения.

И как говорил, с проблемами можно столкнутся только в случае, если упакованная программа имеет объем байтов - не кратно 8 и перед запуском делает проверку целостности.
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
27.12.2012, 04:50
не кратно 8 и перед запуском делает проверку целостности
Я так глубоко не вникал так как не было причины - все программы работали.
Это были все самописные программы.
А на счёт проверки целостности надо почитать кто их делает и пр. На досуге поинтересуюсь
0
-7 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 32
27.12.2012, 23:35  [ТС]
У меня есть программа (x) и мой проект в Visual Basic (y). Мне нужно что бы при открытии (y) там была кнопка,при нажатии которой открывался (х).Но самое главное то что бы при сохранении этого всего проекта, это вышло в 1 exe файл. Ни в коем случае не нужно несколько файлов (типо Shell "start c:1.txt", vbHide и тд) ибо надо внедрить (х) в (у)
Кто подскажет пошагово и на простом языке?!)
 Комментарий модератора 
Тема объединена!
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
28.12.2012, 00:10
saintjeka, я для кого вчера код писал???
Вам что в картинках объяснить как перетянуть один файл на другой, и как скопировать прикрепленный к посту файл в папку с проектом???
Все, что не получается, нужно подробно описывать здесь - в теме.

Дублирование тем на форуме запрещено. Еще раз повторная попытка - предупреждение желтой карточкой.
0
-7 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 32
28.12.2012, 00:39  [ТС]
я не понимаю нифига из того что вы написали! я же сказал я нуб! читайте перед тем как отвечать!
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
28.12.2012, 06:12
Цитата Сообщение от saintjeka Посмотреть сообщение
я же сказал я нуб! читайте перед тем как отвечать!
Я так понял, что разжевывание способов на 4-х страницах пошло даром?
Тогда просто выложите свой проект на VB, и файл, который надо внедрить. Я думаю проще сделать вам готовую программу, чем объяснять дальше.
0
-7 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 32
28.12.2012, 08:54  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Я так понял, что разжевывание способов на 4-х страницах пошло даром?
Тогда просто выложите свой проект на VB, и файл, который надо внедрить. .
нет ну почему,знаю как добавлять в файл ресурсов,мне просто нужен код который на кнопку вписать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.12.2012, 08:54
Помогаю со студенческими работами здесь

Как правильно запустить внешнюю программу?
1) При запуске 7z.exe в PowerShell пишет Неверная числовая константа, можно ли запускать программы начинающихся с цифры без его...

}{очу сделать внешнюю wi-fi антенну на свой ноутбук acer aspire 5610z.
В городе появился новый провайдер. Ноут иногда цепляет слабый сигнал. Хотел бы сделать wi-fi антенну своими руками. Главное найти...

Как запустить внешнюю программу и не ожидать ее выполнения?
Как запустить внешнюю программу и не ожидать ее выполнения? RunCommand ждет пока запущенное приложене не закроекся, а Shellexecuteex...

fork / exec - как запустить внешнюю программу?
Здравствуйте. Я вот скомпилил программу, написанную на Си, допустим test.exe Как ее запустить из стороннего приложения средставми Си?...

Как вставить свой рисунок на UserForm
Здравствуйте. Возникла потребность создать на UserForm свой рисунок. В моём случае это круг, который должен менять цвет зелёный, красный в...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru