[ID CS4-CS6] ExtendScript Socket обращение к HTTPS

Статус
Закрыто для дальнейших ответов.

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
Почему же нельзя - выше примеры которые это делают!
Просто Bridge нормально подгружает эту библиотеку, а InDesign выдает ошибку I/O т.е. чтение / запись (Input/Output).
Я так понимаю что или в эту библиоткеку вшита проверка, чтобы он работал только через Bridge, или в Bridge еще какие-то необходимые методы, недостающие в InDesign, или мы что-то делаем "не так"

webaccesslib ? |Adobe Community

насколько я понимаю, нужно еще несколько файлов скопировать.

* webaccesslib.dll
* coretypes.dll
* netio.dll


а вот библиотека для XMP работает без всяких фокусов.
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
а у меня вообще не windows, а os x, тут по-другому. почитайте топик по ссылке, там может что выудите.
 

Oleh Melnyk

Участник
Сообщения
23
Реакции
6
Пишут, что webaccesslib.dll только с Bridge работет... ну и фиг с ним...

Еще нашел что можно ЛЮБУЮ .dll подключить... скачал виндовую winhttp.dll - подключил - функции из dll ExtendScript видит! Только там API - черт ногу сломит, можно поискать что-то попроще... Но сам факт что можно ЛЮБУЮ .dll подключать - меня переполняет радость, энтузиазм и не хватает воздуха... XD
это же каких новых и крутых скриптов можно наделать на базе уже готовых dll
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
да нет же, там написано что человек напрямую к InDesign ее подключил без бриджа

5 пост там смотрим

в pathToLib нужно положить три вышеозначенные dll

Код:
if( webaccesslib == undefined ) {
if( Folder.fs == "Windows" ) {
var pathToLib = Folder.startup.fsName + "/Plug-Ins/XXX/YYY/webaccesslib.dll";
}
else {
var pathToLib = Folder.startup.fsName + "/webaccesslib.bundle";
}
var libfile = File( pathToLib );
if ( ! libfile.exists ) {
alert("Fatal Error Accessing Webaccesslib " + pathToLib );
return false;
}
try {
var webaccesslib = new ExternalObject("lib:" + pathToLib );
}
catch (Error) {
alert("Fatal Error Creating Webaccesslib " + pathToLib );
return false
}
}
 

Oleh Melnyk

Участник
Сообщения
23
Реакции
6
да нет же, там написано что человек напрямую к InDesign ее подключил без бриджа

5 пост там смотрим

в pathToLib нужно положить три вышеозначенные dll
Делал, та же проблема... Может я не везучий, или криворукий - файл находит, но при попытке его загрузить - ошибка чтения / записи ... Когда пытаюсь загрузить другие 2 файла - все ок. В другом топике писали что эта библиотека только с Bridge работает, или причиной является криворукость, но в InDesign она не загружается
 

Oleh Melnyk

Участник
Сообщения
23
Реакции
6
Написал хитрый алгоритм, который проверяет установлен ли Bridge, находит в какую папку, и добавляет эту папку в пути, где ExtendScript будет искать библиотеки (dll и что там под мак?)... webaccesslib работает корректно только с Bridge - все остальные программы выдают ошибку I/О
Код:
ExternalObject.log = true; // <= write ExtObj progress to console
//ExternalObject.searchFolders = ""; // <= reset searchFolders, or just close all adobe apps and relunch

if(!webaccesslib) {
    // if Bridge installed...
    if(BridgeTalk){  
        var bt = new BridgeTalk();
        bt.target = "bridge";
              
        // prepare Bridge request: get it's instalation path
        bt.body = "Folder.startup.fsName;"; //  app.quit()
      
        // once Bridge path will be retrned - save it to variable
        var bridgeFolder;
        bt.onResult = function(btResponse) { bridgeFolder = btResponse.body };

        // send request to Bridge (delay to get response)
        bt.send(5);
          
        var bridgePath = bridgeFolder;
          
        if(ExternalObject.searchFolders.indexOf(bridgePath) === -1){
            ExternalObject.searchFolders += ";"+bridgePath+";";
        }
    }  
}

try {
    var webaccesslib = new ExternalObject("lib:webaccesslib"); // "I/O error" if app is not Bridge :(
  
    var http = new HttpConnection("https://ya.ru");
    http.execute();
    var result = http.response;
  
    var f = File("~/Desktop/yandex.txt");
    f.open("w", "utf-8");
    f.write(result);
    f.close();
    f.execute(); // <= open txt file
  
} catch (e) {
    $.writeln(e);
}

"End"; // <= this is what console "Result: " will show instead of "undefined" so we knew that file was executed till the end; can be bool, string, number, etc.

Сторонние dll (не от Adobe) подключаются (хотя не все), ExtendScript функции видит, но как к ним обратиться чтоб получить результат я не разобрался - постоянно получаю undefined
 

vbatushev

Топикстартер
20 лет на форуме
Сообщения
2 242
Реакции
1 227
@Oleh Melnyk, забавно. Чутка нагрузка уйдет, тоже поиграюсь. Спасибо, что не успокоился :)
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 235
Реакции
10 852
неправильно понимаешь.
You can extend the JavaScript DOM for an application by writing a C or C++ shared library, compiling it for the platform you are using, and loading it into JavaScript as an ExternalObject object. A shared library is implemented by a DLL in Windows, a bundle or framework in Mac OS, or a SharedObject in UNIX.

You can access the library functions directly through the ExternalObject instance, or you can define an interface that allows your C/C++ code to create and access JavaScript classes and objects.


как-то странно кстати выглядит - тема про cc2015, а копья ломаются о том, что в CS6 node.js недоступна )
 

vbatushev

Топикстартер
20 лет на форуме
Сообщения
2 242
Реакции
1 227
как-то странно кстати выглядит - тема про cc2015, а копья ломаются о том, что в CS6 node.js недоступна )
Это моя вина — не заметил, что указал неверный префикс.
 
Статус
Закрыто для дальнейших ответов.