Вопрос № 18460: Здравствуйте!
Подскажите пожалуйста, как(какие процедуры-функции) должна иметь программа, чтоб быть корректно запущенной как сервис WinNT/2000/...?
Дело вобщем-то не ограничевается VB, но в текущий момент необходима реализация именно на нём.<...Вопрос № 18469: Уважаемые эксперты! Написал простую прогу на VB, но exe не работает на
другом компе без VB, какие компоненты нужны ещё и как можно посмотреть необходимые компоненты для контролов на блоке инструментов? Как можно включить их в exe файл?...
Вопрос № 18460
Здравствуйте!
Подскажите пожалуйста, как(какие процедуры-функции) должна иметь программа, чтоб быть корректно запущенной как сервис WinNT/2000/...?
Дело вобщем-то не ограничевается VB, но в текущий момент необходима реализация именно на нём.
Вполне устроит вариант "где почитать". Можно не о VB, можно не по-русски.
Заранее спасибо!
Отправлен: 18.03.2005, 21:11
Вопрос задал: Стас М. (статус: Посетитель)
Всего ответов отправлено: 1
Отвечает: Александр Шевченко
Здравствуйте, Стас М.!
Пиши на VB.NET - там есть тип проекта "Windows Service". А если на VB 6 - то слышал, что есть какая-то программка, которая позволяет запускать приложение как сервис, но, к сожалению, название не помню.
Ответ отправил: Александр Шевченко (статус: 2-ой класс)
Отправлен: 19.03.2005, 11:39
Вопрос № 18469
Уважаемые эксперты! Написал простую прогу на VB, но exe не работает на
другом компе без VB, какие компоненты нужны ещё и как можно посмотреть необходимые компоненты для контролов на блоке инструментов? Как можно включить их в exe файл?
Отправлен: 19.03.2005, 08:51
Вопрос задал: Александр А.А. (статус: Посетитель)
Всего ответов отправлено: 4
Отвечает: Licvidator
Здравствуйте, Александр А.А.!
Если прога использует компоненты из стандартного набора контролов, то, как правило, больше ничего с собой таскать не надо. В редких случаях может потребоваться библиотека msvbvm60.dll.
Если же программа использует дополнительные dll и осх, то все эти компоненты необходимо включить в состав программы (в сам ехе их не встроить!). Помимо этого, надо будет позаботиться об регистрации (для ActiveX компонентов, native регистрировать не нужно) этих компонентов на машине юзера, обычно я использую DllRegisterServer. Пример:
Private Declare Function RegMSWINSCK Lib "MSWINSCK.OCX" Alias "DllRegisterServer" () As Long
Const ERROR_SUCCES = 0&
Dim RegMSWINSCKCode As Long
Err = 0
RegMSWINSCKCode = RegMSWINSCK()
If Err <> 0 Then
MsgBox "Компонент MSWINSCK.OCX не найден", vbCritical, "TestProgramm"
End
Else
If RegMSWINSCKCode <> ERROR_SUCCES Then
MsgBox "Операция регистрации MSWINSCK.OCX не выполнена", vbCritical, "TestProgramm":
End
End If
End If
Ответ отправил: Licvidator (статус: Профессор)
Отправлен: 19.03.2005, 10:11 Оценка за ответ: 5 Комментарий оценки: что такое native компоненты?
Отвечает: Александр Шевченко
Здравствуйте, Александр А.А.!
Посмотреть dll можно в Project -> References, а ocx в Project -> Components.
Ответ отправил: Александр Шевченко (статус: 2-ой класс)
Отправлен: 19.03.2005, 11:43 Оценка за ответ: 3 Комментарий оценки: где это?
Отвечает: _Виталий
Здравствуйте, Александр А.А.!
1.Для начала нужно определить список подгружаемых модулей вашей прогой. Таких прог не мало в инете, не вспомню конкретно, но предложить могу PROCDUMP прога правда для другого, но модули показывает;-) Так вот из полученного листа определяете нужные файлы. Ну и положив их рядом(или в папку system(system32))с вашем EXE на другом компе все должно работать. Есть одно 'НО', некоторые dll модули не хотят работать без регистрации в системе. Если будет такая ситуация, зарегистрируйте модули приложением regsvr32.exe.
2. По поводу вложения недостающих компонентов в EXE.
Если конечно на машине нету msvbvm60.dll(говорим о VB6), то данный метод не прокатит, а если какого-нибудб OCX то нормально.
Создаем файл ресурсов и пихаем туда в раздел CUSTOM недостающий компонент. И следующий код на Form_Initialize()
----------------------------------
Private Sub Form_Initialize()
'путь например такой, и 101 интедификатор ресурса
Extract "c:windowssystemmyocx.ocx", 101
End Sub
Private Sub Extract(toFile As String, ID As Integer)
On Error Resume Next
Dim a() As Byte
a() = LoadResData(ID, "CUSTOM")
Open toFile For Binary Access Write As #1
Put #1, , a()
Close #1
End Sub
---------------------------------
Данная подпрограмма извлечет файл из файла ресурсов и сохранит его на диске в нужном месте, с нужным именем.
Удачи.
Ответ отправил: _Виталий (статус: 2-ой класс)
Отправлен: 19.03.2005, 13:59 Оценка за ответ: 4
Отвечает: Miklucho
Здравствуйте, Александр А.А.!
любой проге написанной на VB необходима какая-то библиотека, не помню точно названия, кажется vbvbm.dll, первые 2 буквы точно эти, так что поищи в дистрибуттиве по ним. А компоненты можно посмотреть в окне их подключения (ProjectComponents) - когда выделишь какой-нибудь из них, то в низу этого окошка появится путь к файлу и его имя.
Включай их в комплект распрострнения своей программой и не забудь в коде своей программы регистрировать их программой regsvr32.exe (набери ее в консоли с параметром /? и посмотри).
Ответ отправил: Miklucho (статус: Студент)
Отправлен: 22.03.2005, 08:56