Сообщение об ошибке VBS — «Строка: 6, столбец: 1, ошибка:(null), код: 800401E4, источник:(null)»

#vbscript #autoit

#vbscript #автоматический запуск

Вопрос:

Я новичок в написании сценариев и наткнулся на AutoIt, который я хочу лично оценить (наряду с другими технологиями написания сценариев). Кто-нибудь видит какую-либо ошибку в этом коде (я не могу определить, ошибка ли это VBS или что-то, чего я не понимаю в AutoIt)?

Я использую редактор под названием VbsEdit и получаю сообщение об ошибке следующего содержания: «Строка: 6, столбец: 1, Ошибка: (null), Код: 800401E4, источник: (null)»

Любая помощь приветствуется. TIA


 'Start AutoIt server script first

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "h:AutoItServer.exe" 

Set oAutoIt = GetObject("AutoIt.Application") ' the magic

WS_OVERLAPPEDWINDOW = amp;H00CF0000

hGui = oAutoIt.Call("GUICreate", "VBS AutoIt GUI test", -1, -1, -1, -1, WS_OVERLAPPEDWINDOW)
hButton = oAutoIt.Call("GUICtrlCreateButton", "Click", 100, 100, 100, 30)
hButton2 = oAutoIt.Call("GUICtrlCreateButton", "Click me too", 100, 300, 100, 30)

oAutoIt.Call "WinSetOnTop", "VBS AutoIt GUI test", "", 1

AW_FADE_IN  = amp;H00080000
oAutoIt.Call "DllCall", "user32.dll", "bool", "AnimateWindow", "hwnd", hGui, "dword", 1000, "dword", AW_FADE_IN

oAutoIt.Call "GUISetState"

Do
    Select Case oAutoIt.Call("GUIGetMsg")
        Case -3
            Exit Do
        Case hButton
            oAutoIt.Call "MsgBox", 262144 32 3, "Title", "Bzzz bzz bzzzz", 0, hGUI
        Case hButton2
            oAutoIt.Call "Beep", 500, 700
    End Select
    Wscript.Sleep(10)
Loop

oAutoIt.Call "GUIDelete"

If oAutoIt.Call("MsgBox", 4   48   262144, "?", "Kill server?") = 6 Then oAutoIt.Quit
  

Комментарии:

1. @Mr47: Резюме редактирования достаточно, чтобы описать вашу правку. Вам не нужно снова помещать это в содержимое.

2. Похоже, вы используете пример из здесь . Я бы опубликовал сообщение в этой теме, а не здесь, поскольку это довольно специфическая проблема, а сообщество AutoIt в stackoverflow невелико / не существует.

3. Попробуйте запустить его на локальном диске, таком как C:, вместо (возможно) сетевого или внешнего диска H:

4. Во-первых, спасибо за ваши комментарии. Manadar, я переместил AutoItServer.exe на диск C, и он по-прежнему вылетает в том же месте с тем же кодом ошибки

5. Нет, AutomatedChaos, это тоже не решает проблему. The AutoItserver.exe открывается успешно, но затем скрипт не продолжается, он ожидает в строке 6. Если вы подождете несколько минут, а затем закроете исполняемый файл сервера, скрипт продолжит работу и вылетит тем же способом, что и ранее

Ответ №1:

Проблема в том, что вы пытаетесь получить объект до его полной инициализации. (в строке, где происходит волшебство)

Попробуйте WshShell.Run "h:AutoItServer.exe", 1, true это заставляет скрипт ждать, пока не запустится автосервер.

Комментарии:

1. Ответил trancexx из AutoIt forum Example scripts (производитель сервера AutoItServer, который предоставляет способ использования функциональности AutoIt из других языков сценариев …) смотрите: autoitscript.com/forum/topic/128627-access-autoit/page__st__20