запуск exe из res!

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Hawok
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 08.04.2006 (Сб) 18:03

запуск exe из res!

Сообщение Hawok » 08.04.2006 (Сб) 18:12

помогите! есть res прицепленный к проекту... как допустим при нажати на кнопку запускался exe из этого *.res

Dim lang_Yes As (какой тип?)
lang_Yes = LoadResData(101, "CUSTOM")

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 08.04.2006 (Сб) 18:23

Dim lang_Yes As Byte
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Роман-вб
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 520
Зарегистрирован: 04.04.2006 (Вт) 9:40
Откуда: Средняя полоса

Сообщение Роман-вб » 08.04.2006 (Сб) 18:35

Hawok
Код: Выделить всё
Dim exeArr() As Byte
  Dim f As Long
  ReDim exeArr(UBound(LoadResData(101, "CUSTOM")))
  exeArr() = LoadResData(101, "CUSTOM")
  f = FreeFile
  On Error Resume Next
  Open "C:\A.exe" For Binary Access Write As #f
  Put #f, , exeArr
  Close #f
  Shell ттт.ттт...ттт..
Жить ещё 2 недели, работы на 8 лет, но я докажу на деле, на что способен аскет!

Hawok
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 08.04.2006 (Сб) 18:03

Сообщение Hawok » 08.04.2006 (Сб) 20:14

Роман-вб писал(а):Hawok
Код: Выделить всё
Dim exeArr() As Byte
  Dim f As Long
  ReDim exeArr(UBound(LoadResData(101, "CUSTOM")))
  exeArr() = LoadResData(101, "CUSTOM")
  f = FreeFile
  On Error Resume Next
  Open "C:\A.exe" For Binary Access Write As #f
  Put #f, , exeArr
  Close #f
  Shell ттт.ттт...ттт..

СпасибО! терь другая проблемка распаковывает он в (Open "C:\A.exe") но надо чтобы распаковывал в дерикторию с моей прогой т.к пути везде относительны! типа C:/папка_с_твоей_прогой/ непредлагать :oops:

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 08.04.2006 (Сб) 20:15

App.Path

Hawok
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 08.04.2006 (Сб) 18:03

Сообщение Hawok » 08.04.2006 (Сб) 20:18

Amed писал(а):App.Path

все я просто сделал Open "a.exe" чето сначало ступил :oops:

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 09.04.2006 (Вс) 1:10

Hawok писал(а):
Amed писал(а):App.Path

все я просто сделал Open "a.exe" чето сначало ступил :oops:

Действительно ступил, ибо "a.exe", указывает на файл в текущей директории. А app.path & "\a.exe" указывает на файл который находиться в папке с программой.

ЗЫ: Только нужно смотреть не лежит ли программа в корневой папки, тогда слеша добавлять не нужно.
الفيجوال بيسك الرابح

Роман-вб
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 520
Зарегистрирован: 04.04.2006 (Вт) 9:40
Откуда: Средняя полоса

Сообщение Роман-вб » 09.04.2006 (Вс) 11:38

Hawok
К стати, потом, по завершении проги можешь кильнуть экзешник
Код: Выделить всё
KILL App.Path & "\a.exe"
Жить ещё 2 недели, работы на 8 лет, но я докажу на деле, на что способен аскет!

AjaxVS
Постоялец
Постоялец
 
Сообщения: 506
Зарегистрирован: 01.12.2004 (Ср) 13:12
Откуда: Donetsk, Battle.Net

Сообщение AjaxVS » 09.04.2006 (Вс) 22:56

ЗЫ: Только нужно смотреть не лежит ли программа в корневой папки, тогда слеша добавлять не нужно.

В Win9X это не прокатит..

Лучше делать как делают все:
Код: Выделить всё
s = app.path
if right$(s)<>"\" then s = s & "\"
s = s & "a.exe"

Wild VB Code for Food
Постоялец
Постоялец
 
Сообщения: 387
Зарегистрирован: 16.06.2005 (Чт) 17:34
Откуда: ты, друг? =)) Сообщений: 1234

Сообщение Wild VB Code for Food » 10.04.2006 (Пн) 1:15

а меня интересует такой вопрос.....надо запустить байкод в текушем процессе....я себе так представляю.....

PowerBasic:
Код: Выделить всё
Dim bytecode() as byte
Dim size as long

size = LoadByteCode(ByRef bytecode) 'самописная функция, загружает в переменную байт код....

ReDim bytecode(size)

CallbyDword VarPtr(bytecode) Using Plugin_Ext(a,b,c) to lResult

.....


вот меня интересует, выполнение кода в дата сегменте прокатит?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 10.04.2006 (Пн) 7:55

Wild VB Code for Food писал(а):вот меня интересует, выполнение кода в дата сегменте прокатит?

Что такое "дата сегмент" в виндовой проге?
Изображение

Wild VB Code for Food
Постоялец
Постоялец
 
Сообщения: 387
Зарегистрирован: 16.06.2005 (Чт) 17:34
Откуда: ты, друг? =)) Сообщений: 1234

Сообщение Wild VB Code for Food » 10.04.2006 (Пн) 9:31

насколько я понимаю переменные хранятся в .data сегменте. те DS/

Есть различия в виндовой и досовской проге?

ЗЫ. Я имею ввиду прокатит если EIP в сегменте DS
при у словии что в последнем байте массива - retn

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 10.04.2006 (Пн) 9:41

Wild VB Code for Food писал(а):Есть различия в виндовой и досовской проге?

Есть различия. В винде нету сегментов.
Соответственно, не бывает и далёких вызовов. И далёких возвратов тоже нет.
Изображение

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 10.04.2006 (Пн) 10:02

Сегментов то нет, но вот страницы все-таки различаются по атрибутам... Хоть программная эмуляция DEP в WinXP SP2 и не работает(я проверял), все же не следует передавать управелние в код, находящийся в странице не помеченной для исполнения.
Это может привести к неработоспособности программы на более современных процессорах.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Wild VB Code for Food
Постоялец
Постоялец
 
Сообщения: 387
Зарегистрирован: 16.06.2005 (Чт) 17:34
Откуда: ты, друг? =)) Сообщений: 1234

Сообщение Wild VB Code for Food » 10.04.2006 (Пн) 10:03

Ок. спасибо, прояснил...

Где тогда хранятся переменные? Ясен хрен что виртуальная память и хранятся в свопе (pagefile.sys), но я имею ввиду откуда прога читает переменные?

ЗЫ. Тогда такой вопрос, как выполнить байткод, прочитаный извне, в пределах процеесса

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 10.04.2006 (Пн) 10:43

Где тогда хранятся переменные?
:shock:
Там же, где и все остальное
Ясен хрен что виртуальная память и хранятся в свопе (pagefile.sys)
Всегда интересовало, а вот если свопа нет, то и переменные не работают? :shock: Откуда вообще плодятся эти теории? :shock:
ЗЫ. Тогда такой вопрос, как выполнить байткод, прочитаный извне, в пределах процеесса
Посмотреть мои статьи. Там показательным образом создаются страницы с атрибутами выполнения.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Wild VB Code for Food
Постоялец
Постоялец
 
Сообщения: 387
Зарегистрирован: 16.06.2005 (Чт) 17:34
Откуда: ты, друг? =)) Сообщений: 1234

Сообщение Wild VB Code for Food » 10.04.2006 (Пн) 10:56

мне теории по низко уровневому программированию под вин32 не хватает.

ЗЫ. Интересно получилось........когда я постил товоего поста небыло..... :)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 10.04.2006 (Пн) 11:57

Wild VB Code, обязательно почитай про расширение часов в трее
Изображение

Wild VB Code for Food
Постоялец
Постоялец
 
Сообщения: 387
Зарегистрирован: 16.06.2005 (Чт) 17:34
Откуда: ты, друг? =)) Сообщений: 1234

Сообщение Wild VB Code for Food » 10.04.2006 (Пн) 12:45

tyomitch
Предлагаешь записать в себячерез WirteMemory? сейчас попробую....

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 10.04.2006 (Пн) 14:53

Нет, он предлогает восхитится своим гением :) Шутка.
Но если тебе требуется все делает в своем процессе, то и WriteProcessMemory не поможет :)
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Smert
Обычный пользователь
Обычный пользователь
 
Сообщения: 51
Зарегистрирован: 07.04.2006 (Пт) 18:47
Откуда: Молдова,Бельцы

Сообщение Smert » 16.04.2006 (Вс) 20:11

Лучше использовать OLE!!! Вставляешь EXE-шку в форму через OLE
и пишешь где-нибудь в обработчике кода:
OLE1.DoVerb 1

И всё!!
Пап, а что такое ВБ?
Cынок, это просто фантастика!

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 16.04.2006 (Вс) 20:27

Smert
Та ты шо ©
Если всё делать своими ручками, они скоро отвалятся !


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 186

    TopList  
cron