ехе файл

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

785412
Обычный пользователь
Обычный пользователь
 
Сообщения: 79
Зарегистрирован: 12.06.2009 (Пт) 19:25

ехе файл

Сообщение 785412 » 10.08.2009 (Пн) 12:13

Как создать программно исполняемые ехе файл? допустим, есть программа в которой юзер выбирает сколько кнопок будет на форме. далее нажимает кнопку пуск и программа создает в папке ехе файл. Далее запускаем этот файл и должна появиться форма с кнопками. Это ваще реально? Мнеб хотябы создавать ехе файл с формой(программно). Может записывать какито данные в двоичный(binary) файл? Ну очень нуно=) Спасибо заранее.

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: ехе файл

Сообщение Williams » 10.08.2009 (Пн) 12:22

exe хранить в ресурсах или копировать себя. Все остальное - в сопутствующем конфигурационном файле.
И вы думаете, что вас оставят в живых после прочтения этого поста?

785412
Обычный пользователь
Обычный пользователь
 
Сообщения: 79
Зарегистрирован: 12.06.2009 (Пт) 19:25

Re: ехе файл

Сообщение 785412 » 10.08.2009 (Пн) 12:33

Чего? а, понял. Тада другой вопрос, как программно добавить код в свою программу? а всё же, есть какаянить библа дляэтого(создания ехе)?
Или как добавить обработчик событий программно?
Последний раз редактировалось 785412 10.08.2009 (Пн) 12:39, всего редактировалось 1 раз.

Dmitry81
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 52
Зарегистрирован: 20.06.2009 (Сб) 0:43
Откуда: Украина, Запорожье

Re: ехе файл

Сообщение Dmitry81 » 10.08.2009 (Пн) 12:38

смотри в сторону MS Script Control. Правда он не внедряет код в экзешник, но можно выполнить код из строковой переменной (например ручками воткнуть или из текстового файла считать
Последний раз редактировалось Dmitry81 10.08.2009 (Пн) 12:40, всего редактировалось 1 раз.
А.Эйнштейн: Есть две бесконечные вещи - вселенная и человеческая глупость. Хотя, насчет вселенной я сомневаюсь...

Admiralisimys
Постоялец
Постоялец
 
Сообщения: 318
Зарегистрирован: 01.06.2009 (Пн) 10:26

Re: ехе файл

Сообщение Admiralisimys » 10.08.2009 (Пн) 12:40

785412 а ехе должен быть тоже с использованием .NET? Если да, то почему бы не генерить исходный код (по аналогии как это делает IDE при размешении элементов управления), а потом компилировать эго имеющим VB.NET (vbc.exe) компилятором, который входит в .NET Framework и с помощью которого удаётся функционировать собственная vb.net программа.
Пример здесь, с использования bat файла.
Последний раз редактировалось Admiralisimys 10.08.2009 (Пн) 12:41, всего редактировалось 1 раз.

785412
Обычный пользователь
Обычный пользователь
 
Сообщения: 79
Зарегистрирован: 12.06.2009 (Пт) 19:25

Re: ехе файл

Сообщение 785412 » 10.08.2009 (Пн) 12:40

где смотреть? хотя насчет тупости бесконечной это действитеьно правда :D

VBTerminator
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 415
Зарегистрирован: 19.11.2008 (Ср) 20:10

Re: ехе файл

Сообщение VBTerminator » 10.08.2009 (Пн) 12:41

785412 писал(а):Чего? а, понял. Тада другой вопрос, как программно добавить код в свою программу? а всё же, есть какаянить библа дляэтого?

Создаёшь некий файл, в который записывается информация о кнопках и программу, которая считывает этот файл и пополняет у себя коллекцию с кнопками, задаёт их координаты и т. д. Потом редактируешь этот файл другой программой, запускаешь первую (ту, где формируются кнопки) и... Та-да!

785412
Обычный пользователь
Обычный пользователь
 
Сообщения: 79
Зарегистрирован: 12.06.2009 (Пт) 19:25

Re: ехе файл

Сообщение 785412 » 10.08.2009 (Пн) 12:42

дадада!!! админ спс вы меня очень сильно выручили!!! и натолкнули на множество идей!!! :D :D :D :D :D :D

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: ехе файл

Сообщение Williams » 10.08.2009 (Пн) 12:50

Для того, чтобы выполнить указанную тобой задачу:

допустим, есть программа в которой юзер выбирает сколько кнопок будет на форме. далее нажимает кнопку пуск и программа создает в папке ехе файл


- не нужно генерировать/компилировать код.

А так, можно vbc.exe поюзать
И вы думаете, что вас оставят в живых после прочтения этого поста?

785412
Обычный пользователь
Обычный пользователь
 
Сообщения: 79
Зарегистрирован: 12.06.2009 (Пт) 19:25

Re: ехе файл

Сообщение 785412 » 10.08.2009 (Пн) 12:58

как тада создать форму через компилятор(добавить код создания формы)?

785412
Обычный пользователь
Обычный пользователь
 
Сообщения: 79
Зарегистрирован: 12.06.2009 (Пт) 19:25

Re: ехе файл

Сообщение 785412 » 10.08.2009 (Пн) 13:01

VBTerminator писал(а):
785412 писал(а):Чего? а, понял. Тада другой вопрос, как программно добавить код в свою программу? а всё же, есть какаянить библа дляэтого?

Создаёшь некий файл, в который записывается информация о кнопках и программу, которая считывает этот файл и пополняет у себя коллекцию с кнопками, задаёт их координаты и т. д. Потом редактируешь этот файл другой программой, запускаешь первую (ту, где формируются кнопки) и... Та-да!

я то понял это, но конечно хочется создавать файл, хотя думую этот вариант будет легче!

785412
Обычный пользователь
Обычный пользователь
 
Сообщения: 79
Зарегистрирован: 12.06.2009 (Пт) 19:25

Re: ехе файл

Сообщение 785412 » 10.08.2009 (Пн) 13:07

но как добавить обработчик события...

VBTerminator
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 415
Зарегистрирован: 19.11.2008 (Ср) 20:10

Re: ехе файл

Сообщение VBTerminator » 10.08.2009 (Пн) 13:23

785412 писал(а):я то понял это, но конечно хочется создавать файл, хотя думую этот вариант будет легче!

Оох...
  1. Создаёшь файл, допустим, buttons.dat и заполняем его данными следующей структуры:
    <координата X кнопки>,<координата Y кнопки>,<ширина кнопки>,<высота кнопки>,<текст на кнопке>:
    Код: Выделить всё
    256,256,20,180,Кнопка 1
    256,286,20,180,Кнопка 2

    Впрочем, можно использовать и формат записи с произвольным доступом.
  2. Создаём программу, которая будет парсить файл buttons.dat и создавать у себя на форме массив кнопок, затем заполнять нужные свойства кнопок. Назовём её parser.exe.
  3. Затем создаём основную программу, которая будет редактировать файл buttons.dat
Но это узкоспециализированная система, способная изменять лишь кнопки на форме. Если ты хочешь создать что-то типа VS, то тогда тебе придётся изучать, какие команды, как и куда вставлять + ассемблер (ИМХО).

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: ехе файл

Сообщение Williams » 10.08.2009 (Пн) 13:36

VBTerminator писал(а):Создаёшь файл, допустим, buttons.dat


Какой buttons.dat, XML для чего придумали?
И вы думаете, что вас оставят в живых после прочтения этого поста?

VBTerminator
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 415
Зарегистрирован: 19.11.2008 (Ср) 20:10

Re: ехе файл

Сообщение VBTerminator » 10.08.2009 (Пн) 13:40

Williams писал(а):Какой buttons.dat ... ?

Как вариант. :D

785412
Обычный пользователь
Обычный пользователь
 
Сообщения: 79
Зарегистрирован: 12.06.2009 (Пт) 19:25

Re: ехе файл

Сообщение 785412 » 10.08.2009 (Пн) 14:25

Да я понял это, дык vbc.exe форму создавать не хочет :( или я чета не то делаю
текст файла для компиляции MyProgram.vb:
msgbox("")
dim frm as new FORM
frm.show()
он ругается на последние две строчки=( (сам vbc.exe)

Admiralisimys
Постоялец
Постоялец
 
Сообщения: 318
Зарегистрирован: 01.06.2009 (Пн) 10:26

Re: ехе файл

Сообщение Admiralisimys » 10.08.2009 (Пн) 15:13

785412 не тот код минимальной VB.NET проги
Вот основа
Код: Выделить всё
'Определяем используемые пространства имён,
'необходимые для оконного WinForms приложения
Imports System
Imports System.Drawing
Imports System.Windows.Forms
'Указываем имя класса
Class Form1
'Наследуем его от формы
    Inherits Form
'Объявляем процедуру входа
'в случаи использования в классе ключевое слово Shared обязательно
'Вместо процедуры можно указывать Function,
'а так же указать аргументы командной строки, например так Function Main(ByVal cmdArgs() As String) As Integer
    Shared Sub Main()
'Запускаем новый экземпляр приложения Windows Forms при помощи класса
        Application.Run(New Form1)
    End Sub
    Sub New()
        Me.Text="Form1"
    End Sub
End Class
Последний раз редактировалось Admiralisimys 18.08.2009 (Вт) 12:51, всего редактировалось 1 раз.

785412
Обычный пользователь
Обычный пользователь
 
Сообщения: 79
Зарегистрирован: 12.06.2009 (Пт) 19:25

Re: ехе файл

Сообщение 785412 » 10.08.2009 (Пн) 17:57

Можешь глупому объяснить зачем это, а зачем то(код).

785412
Обычный пользователь
Обычный пользователь
 
Сообщения: 79
Зарегистрирован: 12.06.2009 (Пт) 19:25

Re: ехе файл

Сообщение 785412 » 10.08.2009 (Пн) 18:03

Код: Выделить всё
Imports System
    Imports System.Drawing
    Imports System.Windows.Forms

    Class Form1
        Inherits Form
        Shared Sub Main()
            msgbox("")
            dim fr as new form
            fr.show()
        End Sub
    End Class

А почему так форма появляется и тутже исчезает?

Admiralisimys
Постоялец
Постоялец
 
Сообщения: 318
Зарегистрирован: 01.06.2009 (Пн) 10:26

Re: ехе файл

Сообщение Admiralisimys » 18.08.2009 (Вт) 13:03

785412 да конечно.
Я отредактировал предыдущий код, добавив соответственный комментарий по коду.
Вот так же будут полезны следующие ссылки по теме
Процедура Main в Visual Basic
Visual Basic для вундеркиндов. Часть 4. Программирование в .NET Framework
А почему так форма появляется и тутже исчезает?

Потому что заканчивается выполнение процедуры Main
В этом не сложно убедится, добавив после fr.show() что-нибудь типа System.Threading.Thread.Sleep(1000), что задержит конец выполнения на 1 секунду (аргумент задаётся в миллисекундах). А в случаи Application.Run(New Form1) она заканчивается после возврата управления.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: ехе файл

Сообщение MIT » 18.08.2009 (Вт) 14:11

Вместо .Show напиши .ShowDialog, и никуда форма не исчезнет, а выполнение Sub Main`а закончится по закрытию окна.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш


Вернуться в Visual Basic .NET

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 79

    TopList  
cron