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

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

25.12.2012, 21:10. Показов 6144. Ответов 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
38210 / 21143 / 4313
Регистрация: 12.02.2012
Сообщений: 34,757
Записей в блоге: 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
38210 / 21143 / 4313
Регистрация: 12.02.2012
Сообщений: 34,757
Записей в блоге: 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
38210 / 21143 / 4313
Регистрация: 12.02.2012
Сообщений: 34,757
Записей в блоге: 14
26.12.2012, 17:01
Цитата Сообщение от saintjeka Посмотреть сообщение
я вб же не знаю совсем
- гм...
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
26.12.2012, 17:08
Цитата Сообщение от Catstail Посмотреть сообщение
И Касперский не против...
Avira против.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38210 / 21143 / 4313
Регистрация: 12.02.2012
Сообщений: 34,757
Записей в блоге: 14
26.12.2012, 20:42
Цитата Сообщение от Dragokas Посмотреть сообщение
Avira против
- что говорит?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 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
18035 / 7738 / 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
18035 / 7738 / 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
18035 / 7738 / 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 / 2840 / 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
Ответ Создать тему
Новые блоги и статьи
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс Ссылка на сгенерированную музыкальную композицию: https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013 Я говорю, что Время- как вода течет. . .
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Салют, шампанское, овации! :drink:
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru