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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> exe файл на компьютере без установки Visual Basic 
V
    Опции темы
hhhhhh
Дата 20.7.2006, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Что сделать чтобы exe файл работал на другом компьютере, где не установлен Visual Basic и не установлен Microsoft Office.

даёт ошибку, потому что нету файла msstdfrm.dll 
PM MAIL   Вверх
mihanik
Дата 20.7.2006, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

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




Ну, возьми этот файл и скопируй его в system32...

В чём проблема-то? 


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
hhhhhh
Дата 20.7.2006, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ты меня не понял

exe файл сделан в Visual Basic и использует библиотеки из Visual Basic.
имена эти библиотеки он и не найдет. я ставил их возле exe файле но толька msstdfrm.dll не работает

я хочу копировать все на флэшке и потом чтоби использовать на любой комьютере 
PM MAIL   Вверх
mihanik
Дата 20.7.2006, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

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



msstdfrm.dll  положи в system32.

Если будет дальше артачиться, то напиши.
Будем думать... 


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
hhhhhh
Дата 20.7.2006, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



для этого нужна искать где установлен Видовс а потом скопировать с флашке этот файл

а использовать его сразу с флэшке не возможна?  

Это сообщение отредактировал(а) hhhhhh - 20.7.2006, 14:40
PM MAIL   Вверх
mihanik
Дата 20.7.2006, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

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



Хм...
Ставить прогу будешь сам ручками, или будешь писать программу-установщик? smile 
Если ставить ручками, то неужели сложно определить, где стоит винда? smile  


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Xeim
Дата 20.7.2006, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



1) А какие фалы кроме msvbvm60.dll нужно копировать в систем-рт на компе без бейсика?
2) Не могли бы кто-нибудь привести пример батника (*.bat) который сам копирует фалы в систем-рут? Очень было бы удобно. 
PM MAIL   Вверх
mihanik
Дата 21.7.2006, 06:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

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



Посмотри здесь, здесь,  и здесь.

 


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
hhhhhh
Дата 21.7.2006, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

Option Explicit 
 
Private Declare Function WinExec Lib "kernel32" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long 
 
Private Sub Form_Load() 
    WinExec "regsvr32.exe /s {путь_к_библиотеке}", vbNormalNoFocus 
End Sub 


 
PM MAIL   Вверх
mihanik
Дата 22.7.2006, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

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



Действительно, 
Цитата

regsvr32.exe 

регистрирует нужный файл в системе...

И что? smile 
Мы, по-моему, несколько о разном говорим...
Чего-то я в этой жизни не понимаю. smile 
 


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Xeim
Дата 23.7.2006, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(mihanik @ 21.7.2006,  06:51)
Посмотри здесь, здесь,  и здесь.

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

hhhhhh, а то, что ты приводишь вобще не имеет отношения к моему вопросу smile 
PM MAIL   Вверх
JusTalionis
Дата 2.8.2006, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



hhhhhh:
Я давно столкнулся с этим, и пришел к следующему мнению: если хочешь, чтобы скомпилированная прога была завершенным экзешником, не требующим для себя ничего, кроме Msvbvm, не следует использовать компоненты управлений, а всё делать "в ручную".
Подключение в проекте любого компонента приведет к тому, что экзешник начнет искать какую-нибудь внешнюю .dll или .ocx.
Еще у меня был случай - выставил свойство DataFormat для TextBox - и на другой машине прога начала писать "не зарегистрирован класс". Так что, пользуйтесь только теми свойствами, предназначение которых Вам известны и проверены, остальное оставлять по умолчанию.

Вообще, если требуется переносимость, лучше всё делать в ручную, написанием кода, хотя управления и позволяли бы нам множество приятностей.
При этом подходе, меня особенно напрягала невозможность пользоваться Common Dialog для  выбора файлов. Я решил эту проблему использованием API. Вот полностью код модуля, который у меня работает:

Код

'           ПОДКЛЮЧЕНИЕ ФУНКЦИЙ API
'--------------------------------------------------------------------------

'Команда задержки программы
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'Использование:
'Sleep 100 'задержка выполнения на 0.1 сек

'--------------------------------------------------------------------------
'Окна открытия и сохранения файлов Common Dialog
Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOPENFILENAME As OpenFileName) As Long
Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (pOPENFILENAME As OpenFileName) As Long
Type OpenFileName
  lStructSize As Long
  hwndOwner As Long
  hInstance As Long
  lpstrFilter As String
  lpstrCustomFilter As String
  nMaxCustomFilter As Long
  nFilterIndex As Long
  lpstrFile As String
  nMaxFile As String
  lpstrFileTitle As String
  nMaxFileTitle As String
  lpstrInitialDir As String
  lpstrTitle As String
  flags As Long
  nFileOffset As Integer
  nFileExtension As Integer
  lpstrDefExt As String
  lCustData As Long
  lpfnHook As Long
  lpTemplateName As String
End Type

Public Function OpenDialog$(Title As String, ListMask As String)
'Параметры: строка - заголовок окна,
'строка - список показываемых файлов и их расширений в виде: (например)
'   "Тексты" + vbNullChar + "*.txt" + vbNullChar + "Все файлы" + vbNullChar + "*.*" + vbNullChar

'Возвращает:
'строка - полный путь и имя файла или пустая строка при отмене выбора.

Dim filebox As OpenFileName  ' структура для управления диалоговым окном
Dim fname As String  ' возвращаемое имя файла
Dim retval As Long  ' возвращаемое значение

' Устанавливаем вид диалогового окна
filebox.lStructSize = Len(filebox)  ' размер структуры
'filebox.hwndOwner = Form1.hWnd  ' дескриптор формы
filebox.lpstrTitle = Title  ' текст для заголовка диалогового окна
filebox.lpstrFilter = ListMask & vbNullChar ' Здесь устанавливаем типы файлов
filebox.lpstrFile = Space(255)  ' создаем буфер для приема пути и имени файла
filebox.nMaxFile = 255  ' длина буфера
filebox.lpstrFileTitle = Space(255)  ' создаем буфер для приема имени файла
filebox.nMaxFileTitle = 255  ' длина для этого буфера

' отображаем существующие скрытые и только для чтения файлы
filebox.flags = OFN_PATHMUSTEXIST Or OFN_FILEMUSTEXIST Or OFN_HIDEREADONLY

' Запускаем диалоговое окно открытия файлов
retval = GetOpenFileName(filebox)
If retval <> 0 Then  ' если файл выбран
  ' удаляем нулевой символ из имени файла
  fname = Left(filebox.lpstrFile, InStr(filebox.lpstrFile, vbNullChar) - 1)
  OpenDialog$ = fname
Else
  OpenDialog$ = ""
End If
End Function

Public Function SaveDialog$(Title As String, ListMask As String)
'Параметры: строка - заголовок окна,
'строка - список показываемых файлов и их расширений в виде: (например)
'   "Тексты" + vbNullChar + "*.txt" + vbNullChar + "Все файлы" + vbNullChar + "*.*" + vbNullChar

'Возвращает:
'строка - полный путь и имя файла или пустая строка при отмене выбора.
Dim filebox As OpenFileName  ' структура для управления диалоговым окном
Dim fname As String  ' возвращаемое имя файла
Dim retval As Long  ' возвращаемое значение
' Устанавливаем вид диалогового окна
filebox.lStructSize = Len(filebox)  ' размер структуры
'filebox.hwndOwner = Form1.hWnd  ' дескриптор формы
filebox.lpstrTitle = Title  ' текст для заголовка диалогового окна
filebox.lpstrFilter = ListMask & vbNullChar   ' Здесь устанавливаем типы файлов
filebox.lpstrFile = Space(255)  ' создаем буфер для приема пути и имени файла
filebox.nMaxFile = 255  ' длина буфера
filebox.lpstrFileTitle = Space(255)  ' создаем буфер для приема имени файла
filebox.nMaxFileTitle = 255  ' длина для этого буфера
' отображаем существующие файлы
filebox.flags = OFN_PATHMUSTEXIST

' Запускаем диалоговое окно сохранения файлов
retval = GetSaveFileName(filebox)
If retval <> 0 Then  ' если файл выбран
  ' удаляем нулевой символ из имени файла
  fname = Left(filebox.lpstrFile, InStr(filebox.lpstrFile, vbNullChar) - 1)
  SaveDialog$ = fname
Else
  SaveDialog$ = ""
End If
End Function
'--------------------------------------------------------------------------


Создаете модуль и вставляете в него этот код без изменений. Это позволит пользоваться в проге тремя функциями API.
Вызываются они в программе следующим образом (пример):

Fname$ = OpenDialog$("Открыть файл", "Тексты" + vbNullChar + "*.txt" + vbNullChar + "Все файлы" + vbNullChar + "*.*" + vbNullChar)
Вызывает окно открытия файлов.

Fname$ = SaveDialog$("Сохранить", "Тексты" + vbNullChar + "*.txt" + vbNullChar + "Все файлы" + vbNullChar + "*.*" + vbNullChar)
Вызывает окно сохранения файлов.

Обе возвращают строку: имя выбранного файла или пустую строку в случае отмены. Особо отмечаю, что эти функции сами НЕ ОТКРЫВАЮТ файлов, а только выдают вам имя. Они предназначены лишь для позиционирования по древу каталогов. Получив имя выбранного файла, откройте его бейсиковой функцией Open, как обычно.

  Третья функция предназначена для задержки выполнения программы. Вызывается:
Sleep 500
(задержка на 0.5 сек, к примеру). 
Особое достоинство этой функции в том, что пока ваша прога приостановлена ею, ресурсы высвобождаются для выполнения других задач, запущенных на машине. Если же Вы сделали бы, например, какой-нибудь здоровенный пустой цикл, он затребовал бы на свое выполнение максимально доступный ресурс и тормознул бы этим всю машину.

Я думаю, что именно эти три функции - единственный случай, когда применение API и полезно, и оправдано, несмотря на их громоздкость.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

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

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

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

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


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

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


 




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


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

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