Статус: Активный участник
Группы: Участники
Зарегистрирован: 13.02.2024(UTC) Сообщений: 73  Сказал(а) «Спасибо»: 2 раз
|
Автор: Андрей *  Без разницы. Ссылка выше, там на 7ке написано и в современной, от 2024 работает. там код на Дельфи, а у нас на jscript...
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 13.02.2024(UTC) Сообщений: 73  Сказал(а) «Спасибо»: 2 раз
|
самый первый пост смотрите
код был корректный, что-то не то было в конфигурации CAPICOM / COM+
и те же симптомы
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 13.02.2024(UTC) Сообщений: 73  Сказал(а) «Спасибо»: 2 раз
|
Автор: Андрей *  Давно бы сделали или на форуме взять заготовки, раз в квартал, полгода кто-то пытается осознать, как с com работать в 202х годах. Отличный совет, для hello-world кода. Специально сделал чисто-Delphi демку. Цитата:{$APPTYPE CONSOLE}
uses ComObj, ActiveX, SysUtils;
var a: Variant;
begin try CoInitialize(nil); // OleInitialize(nil); a := CreateOleObject('CAdESCOM.Store'); a.Open(2,'My',0); WriteLn('Store.Open passed');
WriteLn('-- press Enter to exit'); ReadLn; except on E:Exception do Writeln(E.Classname, ': ', E.Message); end; end. В таком вырожденном варианте - ошибки нет. Теперь в Дельфи запускаем Windows Scripting Host, в нём делаем код на JScript (выше приводился), и внезапно - ошибка, интерфейс не поддерживается. При этом WScript.exe вроде бы все выполняет. А единственное на вашем форуме сообщение об ошибке было исправлено недокументированной настройкой COM+ Ну и как это диагностировать?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 13.02.2024(UTC) Сообщений: 73  Сказал(а) «Спасибо»: 2 раз
|
Код:
var Store = new ActiveXObject("CAdESCOM.Store" );
Store.Open(2, "My", 0);
Store = null;
При запуске из WSH/JSCRIPT изнутри Delphi - та же ошибка, интерфейс не поддерживается.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,712   Сказал «Спасибо»: 574 раз Поблагодарили: 2303 раз в 1804 постах
|
Вы писали что в Delphi не работает. Com работает. Причём тут вообще ЯП, если дёргается процесс wscript.exe?
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,712   Сказал «Спасибо»: 574 раз Поблагодарили: 2303 раз в 1804 постах
|
Автор: MWB Dmitry  Код:
var Store = new ActiveXObject("CAdESCOM.Store" );
Store.Open(2, "My", 0);
Store = null;
При запуске из WSH/JSCRIPT изнутри Delphi - та же ошибка, интерфейс не поддерживается. А если не изнутри, работает? |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,712   Сказал «Спасибо»: 574 раз Поблагодарили: 2303 раз в 1804 постах
|
Как запускается то? Явно указываете путь к exe? |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,712   Сказал «Спасибо»: 574 раз Поблагодарили: 2303 раз в 1804 постах
|
Думаю проблема в том, что запускаете не тот exe. Посмотрите через proccess mon что из приложения и что через Explorer запускается.  IMG_20240214_125830_371.jpg (160kb) загружен 3 раз(а). |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 13.02.2024(UTC) Сообщений: 73  Сказал(а) «Спасибо»: 2 раз
|
1. WScript.exe дёргается в старом коде, с BES-подписью.
Точнее:
1.1. программа Delphi запускает WSH/JScript внутри себя. 1.2. JScript внутри Delphi создает ActiveX-объект WshShell и через него запускает WShell.exe (тоже 32-битный, c:\windows\syswow64) 1.3. С кривой передачей данных туда и обратно через текстовые файлы.
От костылей хотелось бы избавиться.
2. Много лет назад уже нарывались, что COM Automation напрямую из Delphi/WSH/JScript не работает с вашими компонентами, хотя работает с CAPICOM
3. JS Скрипт выше работает при вызове из командной строки 64-битной программы через WScript.exe попозже попробуй из cmd 32-bit
4. но даёт ту же ошибку при вызове изнутри Delphi/WSH/JScript
5. Чистый Дельфи код тоже не даёт ошибки
Подозреваю, что у вас как-то особенно сделан COM Automation и вызов функции в этих трёх вариантах перебираются интерфейсы в разных последовательностях, с конца и с начала, и поскольку функция Open присутствует в них всех - то в этих вариантах делаются касты к разным интерфейсам...
Был бы нативный код Дельфи я бы в CPU Windows посмотрел, что конкретно произошло, но... прокладка внутри прокладки
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 13.02.2024(UTC) Сообщений: 73  Сказал(а) «Спасибо»: 2 раз
|
Автор: Андрей *  Думаю проблема в том, что запускаете не тот exe. EXE не запу3скается вообще WSH - работает внутри основного EXE
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close