Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как создать ехе файл при нажатии кнопки? Как создать ехе файл при нажатии кнопки? 
:(
    Опции темы
Vadimn
Дата 7.6.2011, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 9.7.2009

Репутация: нет
Всего: нет



Здравствуйте. Подскажите пожалуйста как скомпилировать ехе фаил из другова ехе на VB
 Примерно так тока чтоб ехе работал нормально.

Код

Private Sub Command1_Click()
Dim F As Long
  F = FreeFile
  Open App.Path & "\programka.exe" For Output As #F
  Write #F, "Private Sub Command1_Click()"
  Write #F, "MsgBox ""Выберите exe"""
  Write #F, "End Sub"
  Close #F
End Sub


Это сообщение отредактировал(а) Akina - 7.6.2011, 10:54
PM MAIL   Вверх
Dexx
Дата 7.6.2011, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 292
Регистрация: 13.6.2005

Репутация: 5
Всего: 7



 smile 


--------------------

PM   Вверх
iff
Дата 7.6.2011, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


Профиль
Группа: Участник
Сообщений: 949
Регистрация: 23.3.2007

Репутация: -1
Всего: 16



Да, так сделать можно. Есть несколько вариантов:
  • Написать свой компилятор VB;
  • Изучить формат файлов проекта, форм, модулей для VB. Создавать файлы проекта, формы и т.д., а потом запускать компилятор Microsoft VB. Возможно, есть такая опция командной строки что-бы сразу запустить на крмпиляцию.



--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
Dexx
Дата 7.6.2011, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 292
Регистрация: 13.6.2005

Репутация: 5
Всего: 7



http://www.vbnet.ru/forum/show.aspx?id=216331
Код

ption Explicit 
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long 
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long 
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long 
Private Const SYNCHRONIZE = &H100000 
 
Private Sub Command1_Click() 
    Dim sfile As String 
    Dim frmstr As String 
     
    sfile = "D:\myform.frm" 
     
    frmstr = "VERSION 5.00" & vbCrLf & _ 
            "Begin VB.Form Form1" & vbCrLf & _ 
            "Begin VB.TextBox Text1 End" & vbCrLf & _ 
            "End" & vbCrLf & _ 
            "Attribute VB_Name = ""Form1""" & vbCrLf & _ 
            "Attribute VB_GlobalNameSpace = False" & vbCrLf & _ 
            "Attribute VB_Creatable = False" & vbCrLf & _ 
            "Attribute VB_PredeclaredId = True" & vbCrLf & _ 
            "Attribute VB_Exposed = False" & vbCrLf & _ 
            "Option Explicit" 
     
    ' создать времянку 
    Open sfile For Binary As #1 
     Put 1, , frmstr 
    Close #1 
     
    Dim pid As Long, hProc As Long 
    pid = Shell("vb6.exe /make " & sfile & " /d const=1 D:\myform.exe") 'построение 
     
    hProc = OpenProcess(SYNCHRONIZE, False, pid) 
    WaitForSingleObject hProc, &HFFFF    'дождаться завершения построения 
    CloseHandle hProc 
     
    Kill "D:\myform.frm" 'удалить времянку 
    Shell "D:\myform.exe", vbNormalFocus ' запустить созданный exe 
End Sub 



Это сообщение отредактировал(а) Dexx - 7.6.2011, 15:17


--------------------

PM   Вверх
Vadimn
Дата 7.6.2011, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 9.7.2009

Репутация: нет
Всего: нет



Спасибо Dexx  отлично работает твой код!

Ну расположение элементов можно и прописать в форм лоад, а вот как иконку сделать ехе файлу при создании?

Код

Option Explicit
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Const SYNCHRONIZE = &H100000

  
Private Sub Command1_Click()
    Dim sfile As String
    Dim frmstr As String

sfile = "D:\Form1.frm"
    
'как ехе файлу иконку присвоить?
'"Begin VB.Form1.Icon = ""D:\ico.ico""" & vbCrLf & _
'"Attribute VB_Form1.Icon = ""D:\ico.ico""" & vbCrLf & _

'код создаваемой формы
frmstr = "VERSION 5.00" & vbCrLf & _
            "Begin VB.Form Form1" & vbCrLf & _
            "Begin VB.CommandButton Command1 End" & vbCrLf & _
            "Begin VB.TextBox Text1 End" & vbCrLf & _
            "End" & vbCrLf & _
            "Attribute VB_Name = ""Form1""" & vbCrLf & _
            "Attribute VB_GlobalNameSpace = False" & vbCrLf & _
            "Attribute VB_Creatable = False" & vbCrLf & _
            "Attribute VB_PredeclaredId = True" & vbCrLf & _
            "Attribute VB_Exposed = False" & vbCrLf & _
            "Option Explicit" & vbCrLf & _
            "Dim F As Long" & vbCrLf & _
            "Private Sub Form_Load()" & vbCrLf & _
            "Command1.Left = ""840""" & vbCrLf & _
            "Command1.Top = ""0""" & vbCrLf & _
            "End Sub" & vbCrLf & _
            "Private Sub Command1_Click()" & vbCrLf & _
            "MsgBox ""работает exe""" & vbCrLf & _
            "F = FreeFile" & vbCrLf & _
            "Open ""D:\seve.txt"" For Output As #F" & vbCrLf & _
            "Write #F, ""даже сохраняет""" & vbCrLf & _
            "Close #F" & vbCrLf & _
            "End Sub"
   
    Open sfile For Binary As #1   ' создать времянку
     Put 1, , frmstr
    Close #1

    Dim pid As Long, hProc As Long
    pid = Shell("vb6.exe /make " & sfile & " /d const=1 D:\Form1.exe") 'построение

    hProc = OpenProcess(SYNCHRONIZE, False, pid)
    WaitForSingleObject hProc, &HFFFF    'дождаться завершения построения
    CloseHandle hProc

    Kill "D:\Form1.frm" 'удалить времянку
    Shell "D:\Form1.exe", vbNormalFocus ' запустить созданный exe
End Sub


Это сообщение отредактировал(а) Vadimn - 7.6.2011, 18:09
PM MAIL   Вверх
Dexx
Дата 7.6.2011, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 292
Регистрация: 13.6.2005

Репутация: 5
Всего: 7



Код не мой! Я ссылку указал.
А иконки форм хранятся в frx файлах и с ними такой
Код

"Begin VB.Form1.Icon = ""D:\ico.ico""" & vbCrLf & _
'"Attribute VB_Form1.Icon = ""D:\ico.ico""" & vbCrLf & _

номер не пройдет.

Можно попробовать поменять иконку уже у готового exe.
Вот тут рассказывают как это сделать http://forum.sources.ru/index.php?showtopic=101314&hl=

Это сообщение отредактировал(а) Dexx - 7.6.2011, 19:09


--------------------

PM   Вверх
Vadimn
Дата 8.6.2011, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 9.7.2009

Репутация: нет
Всего: нет



Цитата

Код не мой! Я ссылку указал.

Прошу прошения! Спасибо за ссылку!  Главное что рабочий код какраз то что надо!

Цитата

Можно попробовать поменять иконку уже у готового exe.
Вот тут рассказывают как это сделать http://forum.sources.ru/index.php?showtopic=101314&hl=


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

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

PM MAIL   Вверх
Akina
Дата 8.6.2011, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(Vadimn @  8.6.2011,  19:41 Найти цитируемый пост)
указать иконку при создании ехе файла?

Для изменения иконы проекта следует снабдить его файлом ресурсов и поместить в него иконку с буквенным индексом. При компиляции ресурсы будут залиты в файл, а в качестве иконы будет взята первая в алфавитном порядке (буквы идут раньше цифр, как ни странно). Изучайте использование Resource Editor из комстроки.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Vadimn
Дата 12.6.2011, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 9.7.2009

Репутация: нет
Всего: нет



Всем спасибо! Может это не правильный метод но как есть так и есть, зато работает. Вставил иконку в ехе№1 и появился фаил Form1.frx, открыл в тхт фаил Form1.frm и скопировал оттуда 
Caption = "Form1"
ClientHeight = 6555
ClientLeft = 60
ClientTop = 450
ClientWidth = 8250
Icon = "Form1.frx":0000
LinkTopic = "Form1"
ScaleHeight = 6555
ScaleWidth = 8250
Вставил в исходник ехе№1.

Код

'код создаваемой формы
frmstr = "VERSION 5.00" & vbCrLf & _
            "Begin VB.Form Form1" & vbCrLf & _
   "Caption = ""Form1""" & vbCrLf & _
   "ClientHeight = 6555" & vbCrLf & _
   "ClientLeft = 60" & vbCrLf & _
   "ClientTop = 450" & vbCrLf & _
   "ClientWidth = 8250" & vbCrLf & _
   "Icon            =   ""Form1.frx"":0000" & vbCrLf & _
   "LinkTopic = ""Form1""" & vbCrLf & _
   "ScaleHeight = 6555" & vbCrLf & _
   "ScaleWidth = 8250" & vbCrLf & _
            "Begin VB.CommandButton Command1 End" & vbCrLf & _
            "Begin VB.TextBox Text1 End" & vbCrLf & _
            "End" & vbCrLf & _
            "Attribute VB_Name = ""Form1""" & vbCrLf & _
            "Attribute VB_GlobalNameSpace = False" & vbCrLf & _
            "Attribute VB_Creatable = False" & vbCrLf & _
            "Attribute VB_PredeclaredId = True" & vbCrLf & _
            "Attribute VB_Exposed = False" & vbCrLf & _
            "Option Explicit" & vbCrLf & _
            "Dim F As Long" & vbCrLf & _
            "Private Sub Command1_Click()" & vbCrLf & _
            "MsgBox ""работает exe""" & vbCrLf & _
            "End Sub" 


И положил место ико картинки файлик Form1.frx и скомпелировался ехе№2 с иконкой.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0497 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.