Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: VBA и VBS Добавлено: 22.03.07 09:49  

Автор вопроса:  bam | Web-сайт: яндекс.ру | ICQ: 307429922 
Всем привет. Возникла необходимость в связи с отказом от MS Excel написать утилиту на VBS.
Есть dll(com-объект) для работы с весами через ком-порт, регистрируемая в Windows с помощью команды regsvr32. В ней две вызываемые функции Init(int port) и ReadWeightResult().
Init инициализирует com-port, ReadWeightResult возвращает вес с девайса.
На VBA использование этих методов работает и выглядит так:
Private Sub ClickProject2()
    Dim Obj As PVScale.Scale
    Set Obj = New PVScale.Scale
    Obj.Init 1
    Debug.Print Obj.ReadWeightResult
    For i = 1 To 950
       Debug.Print "" & i & " " & Obj.ReadWeightResult
    Next
End Sub

Попытка сделать нечто похожее на VBS результатов не приносит, выдается ошибка: Требуется объект,
Код 800A01A8.

Dim Obj
Set Obj = CreateObject("PVScale.Scale")
Obj.Init 1
msgBox Obj.ReadWeightResult

Объект, похоже создается, о чем свидетельствует следующий код и выводится "Ложь".
Dim Obj
Set Obj = CreateObject("PVScale.Scale")
msgBox Obj is nothing

 Если объект создается, то как тогда использовать его методы на VBS?

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 bam



ICQ: 307429922 

Вопросов: 1
Ответов: 3
 Web-сайт: яндекс.ру
 Профиль | | #1
Добавлено: 22.03.07 14:11
Неужели никто не знает?

Ответить

Номер ответа: 2
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #2 Добавлено: 22.03.07 17:25
'Set Obj = CreateObject("PVScale.Scale";)
var Obj = new ActiveXObject("PVScale.Scale";);

?

Ответить

Номер ответа: 3
Автор ответа:
 bam



ICQ: 307429922 

Вопросов: 1
Ответов: 3
 Web-сайт: яндекс.ру
 Профиль | | #3
Добавлено: 23.03.07 09:43
Вот код файла vesy.vbs

Dim Obj As PVScale.Scale
Set Obj = new ActiveXObject("PVScale.Scale";)
MsgBox IsObject(Obj)

Код ошибки: 800A0401.

Вчера написал эту утилиту на VB, код приведу ниже. Но осадок от непонятости, почему это так и не заработало на vbs остался.
Private flag As Boolean


Private Sub Command1_Click()
 Unload Me
End Sub


Private Sub Form_Paint()

On Error GoTo SubMain_Err
If flag = False Then
    flag = True
    ;Dim Obj As PVScale.Scale
    Set Obj = New PVScale.Scale
    Obj.Init (1)
    If Obj.ReadWeightResult > -1 Then
        MsgBox "Весы находятся в рабочем режиме. Полученный вес=" & CStr(Obj.ReadWeightResult), vbOKOnly, "Внимание"
    Else
        MsgBox "Весы необходимо инициализировать!", vbOKOnly, "Внимание"
    End If
End If
Exit Sub
SubMain_Err:
If Err.Number = 429 Then
    MsgBox "Не зарегистрирована библиотека PVScale60.dll. Код ошибки:" & Err.Number & ": " & Err.Description & "", vbExclamation + vbOKOnly, ""
Else
    MsgBox "Возникла непредвиденная ошибка! " & Err.Number & ": " & Err.Description & "-> " & Err.Source, vbExclamation + vbOKOnly, VB.App.ProductName
End If
End Sub

Ответить

Номер ответа: 4
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #4 Добавлено: 23.03.07 15:12
хм.. тогда х.з... может настройки безопасности? Например злобный антивирус какой-то?

Ответить

Номер ответа: 5
Автор ответа:
 bam



ICQ: 307429922 

Вопросов: 1
Ответов: 3
 Web-сайт: яндекс.ру
 Профиль | | #5
Добавлено: 26.03.07 10:41
антивирус злой, но правильный: Symantec Antivirus Corporate Edition.
На карантин ничего не взял.
Поэтому дело не в нём.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам