Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Basic / VBA


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 337
от 03.08.2006, 19:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 186, Экспертов: 23
В номере:Вопросов: 1, Ответов: 3


Вопрос № 50479: Написал программку: лончер консольного приложения upx.exe. Потом решил внедрить upx.exe в свою программу, чтобы было все в одном файле. Теперь 2 вопроса: 1. Как решить проблему внедрения так, чтобы в нужный момент upx.exe выгружалась в папку TEMP...

Вопрос № 50.479
Написал программку: лончер консольного приложения upx.exe. Потом решил внедрить upx.exe в свою программу, чтобы было все в одном файле. Теперь 2 вопроса:
1. Как решить проблему внедрения так, чтобы в нужный момент upx.exe выгружалась в папку TEMP для запуска. Сейчас сделал совершенно жутко: вставил как OLE, выгружаю через OLE.saveToFile, при этом выгружается не чистый файл, а в некоей обертке, из которой его приходится еще выковыривать (код прилагаю). Работает это, конечно, очень медленно. Как можно (и можно ли силами VB) корректно объединить лончер и консольную программу в одном файле, из которого вторая в нужный момент быстро выгрузится?
2. Как можно (если можно) вывод результатов консольной проги перехватывать, чтобы отобразить их, скажем, в TextBox, а окно консоли вообще можно будет скрыть?

Приложение:

Отправлен: 28.07.2006, 20:05
Вопрос задал: Fole (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Кокорич Вадим Леонидович
Здравствуйте, Fole!
Если Вы имеете в виду упаковщик РЕ-файлов UPX.exe, то Ваш случай давно и успешно реализован (как раз в одном файле), но я сомневаюсь, что это было сделано в VB. Приведу дословно из "О программе":

UPX_Control v.1.5 (FreWare) Copyright (c) 2004-2006 Rafsoft & Rafael Abdulmanov
http://rafsoft.narod.ru
Данная программа является Windows - оболочкой хорошо известного
упаковщика exe - файлов: The Ultimate Packer for eXecutables (UPX v2.00)
Copyright (c) 1996-2006 Markus Oberhumer & Laszlo Molnar
http://upx.sourceforge.net

Свяжитесь с автором, может быть, он подскажет конкретное решение.
---------
Труд сделал обезьяну человеком, а лень человека - программистом !
Ответ отправил: Кокорич Вадим Леонидович (статус: 2-ой класс)
Ответ отправлен: 29.07.2006, 08:37
Оценка за ответ: 1
Комментарий оценки:
Понимаете, вопрос был не об UPX, а о VB, его возможностях и моем незнании этих возможностей. Вместо upx.exe можно было написать любое ConsoleApplication.exe. Я четко сформулировал 2 вопроса и ждал ответа именно на них.

Отвечает: Залетин Виталий Викторович (мь!тарь)
Здравствуйте, Fole!
1. А почему нельзя пoместить экзешник в ресурсы как бинарный ресурс и извлекать оттуда в байтовый массив или строку и записывать этот массив или строку во временный файл? И потом уже запускать его... Как по мне - времени займет минимум, правда размер основного файла .exe немного подрастет, но если так надо - то надо...

2. Почитайте вот это - как раз в тему:
http://www.vbnet.ru/articles/showarticle.aspx?id=85
---------
Учиться никогда не поздно. Особенно программированию!
Ответ отправил: Залетин Виталий Викторович (мь!тарь) (статус: Студент)
Ответ отправлен: 29.07.2006, 13:10
Оценка за ответ: 5

Отвечает: Александр Шевченко
Здравствуйте, Fole!
1. Попробуйте запихнуть upx в ресурсы и вытягивать его оттуда при помощи функции LoadResData
2. Примеры отлова вывода консоли:
http://www.vb.kiev.ua/code/shell/Control_Console_App.zip
http://www.vb.kiev.ua/code/shell/DOS_App_Output_Capturing.zip
http://www.vb.kiev.ua/code/shell/stdin_cshell.zip
---------
Вместо внутренней почты лучше стучитесь в аську
Ответ отправил: Александр Шевченко (статус: Студент)
Ответ отправлен: 31.07.2006, 11:38
Оценка за ответ: 5


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.35 от 27.07.2006
Яндекс Rambler's Top100

В избранное