VB SCript - программа зависания CreateObject - PullRequest
0 голосов
/ 09 апреля 2020

Справочная информация : Я написал скрипт VB для объединения всех текстовых документов в папке в один файл. Я запускаю этот скрипт VB из кода C ++. Когда я запускаю этот скрипт VB на самом сервере, он работает нормально. Однако, когда этот код сервера запускается с клиентского компьютера, он зависает (этот сценарий VB по-прежнему выполняется только на сервере).

Я удалил весь лог c из сценария VB, чтобы найти причину root и только код ниже, ничего больше.

Dim wdApp
Set wdApp = CreateObject("Word.application")
wdApp.visible = false
wdApp.Quit
Set wdApp = Nothing

Этот CreateObject вызывает зависание системы, а затем постепенно потребляет память и приводит к разбивке на страницы.

Я попытался установить wdApp.visible = true -> не было никаких сообщений об ошибках.

1 Ответ

0 голосов
/ 09 апреля 2020

CreateObject("Word.Application") создает новый экземпляр объекта приложения Word

. Сначала вы должны попробовать получить уже работающий

. Это правильный подход

Dim wdApp As Object

On Error Resume Next
Set wdApp = GetObject(, "Word.Application") ' try getting a running instance of Word
If Err.Number <> 0 Then Set wdApp = CreateObject("Word.Application") ' if unsuccessful, try creating a new instance of Word
On Error GoTo 0

If wdApp Is Nothing Then
    MsgBox "couldn't get or create an instance of Word"
    Exit Sub
End If

wdApp.Visible = False

' your code with wdApp

wdApp.Quit
Set wdApp = Nothing
...