Автор Тема: CmdLine + Json + imacros ошибка object  (Прочитано 183 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Zizya1 [?]

  • Новичок
  • *
  • Сообщений: 2
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
Приветствую.
Помогите разобраться с ошибкой Error: Variable must be of type "Object".
Данная ошибка возникает при запуске скомпилированного файла (exe) из imacros firefox.
При запуске с консоли все работает.
Заранее благодарен.

Русское сообщество AutoIt

CmdLine + Json + imacros ошибка object
« Отправлен: Май 17, 2018, 16:04:26 »

Оффлайн hedji [?]

  • Продвинутый
  • ***
  • Сообщений: 320
  • Репутация: 56
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: CmdLine + Json + imacros ошибка object
« Ответ #1, Отправлен: Май 17, 2018, 16:48:32 »
Код скрипта приложите.

Помечен как лучший ответ пользователем Zizya1 Отправлен Май 18, 2018, 13:29:19

Оффлайн Zizya1 [?]

  • Новичок
  • *
  • Сообщений: 2

  • Автор темы
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: CmdLine + Json + imacros ошибка object
« Ответ #2, Отправлен: Май 17, 2018, 17:28:59 »
Код скрипта autoitLocal $fileSend = FileOpen("send.ini", 0)
Local $Json = FileReadLine($fileSend)
Local $Obj = JSon_Decode($Json)
Local $objZagolovok = Json_Get($Obj, '["zagolovok"]')
local $randomZagolovok = Random(0, UBound($objZagolovok)-1, 1)
local $fileWriteResult = FileOpen (@ScriptDir & "\" & $CmdLine[1] & ".txt", $FO_OVERWRITE + $FO_UTF8)
FileWrite($fileWriteResult, Json_Get($Obj, '["zagolovok"][' & $randomZagolovok & ']') & @CRLF)
Local $text = Json_Get($Obj, '["text"]')
FileClose($fileWriteResult)
Код скрипта запуска из imacrosfunction _startExe(put,args=[]){ //put - путь к файлу программы; args - массив с параметрами
   var Cc=Components.classes, Ci=Components.interfaces;
   var proc=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
   var file=Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);       
   file.initWithPath(put);       
   proc.init(file); proc.run(false, args, args.length);
}
_startExe("D:\\iMacros\\Macros\\program\\autoit\\json\\randomTxt\\randomSimvol.exe", ['test']);


Решено!
Проблема была в пути к файлу
Local $fileSend = FileOpen("send.ini", 0)

заменил на:
Local $fileSend = FileOpen(@ScriptDir & "\send.ini", 0)

При запуске из под imacros не находило это файл!

Всем спасибо!
« Последнее редактирование: Май 18, 2018, 13:29:02 от Zizya1 »

Русское сообщество AutoIt

Re: CmdLine + Json + imacros ошибка object
« Ответ #2 Отправлен: Май 17, 2018, 17:28:59 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
9 Ответов
9455 Просмотров
Последний ответ Январь 11, 2011, 17:20:43
от Medic84
3 Ответов
6267 Просмотров
Последний ответ Август 30, 2011, 13:15:01
от Rage911
9 Ответов
4604 Просмотров
Последний ответ Ноябрь 23, 2011, 11:01:35
от darkwhite
2 Ответов
2257 Просмотров
Последний ответ Октябрь 01, 2012, 09:38:58
от Drombun
7 Ответов
3590 Просмотров
Последний ответ Сентябрь 21, 2013, 11:45:31
от madmasles
0 Ответов
2497 Просмотров
Последний ответ Февраль 14, 2014, 23:56:12
от Dk
8 Ответов
1396 Просмотров
Последний ответ Ноябрь 30, 2015, 14:03:12
от Maxlinus
1 Ответов
2164 Просмотров
Последний ответ Декабрь 11, 2015, 10:03:02
от alex33
9 Ответов
2380 Просмотров
Последний ответ Ноябрь 11, 2016, 13:51:52
от x-vit
3 Ответов
190 Просмотров
Последний ответ Август 28, 2018, 18:37:42
от sngr