Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

5 Страницы«<2345>
Опции
К последнему сообщению К первому непрочитанному
Offline MWB Dmitry  
#31 Оставлено : 13 февраля 2024 г. 19:43:54(UTC)
MWB Dmitry

Статус: Активный участник

Группы: Участники
Зарегистрирован: 13.02.2024(UTC)
Сообщений: 73
Российская Федерация

Сказал(а) «Спасибо»: 2 раз
Автор: Андрей * Перейти к цитате
Без разницы. Ссылка выше, там на 7ке написано и в современной, от 2024 работает.


там код на Дельфи, а у нас на jscript...

Offline MWB Dmitry  
#32 Оставлено : 13 февраля 2024 г. 19:44:35(UTC)
MWB Dmitry

Статус: Активный участник

Группы: Участники
Зарегистрирован: 13.02.2024(UTC)
Сообщений: 73
Российская Федерация

Сказал(а) «Спасибо»: 2 раз
самый первый пост смотрите

код был корректный, что-то не то было в конфигурации CAPICOM / COM+

и те же симптомы
Offline MWB Dmitry  
#33 Оставлено : 14 февраля 2024 г. 11:34:24(UTC)
MWB Dmitry

Статус: Активный участник

Группы: Участники
Зарегистрирован: 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+

Ну и как это диагностировать?
Offline MWB Dmitry  
#34 Оставлено : 14 февраля 2024 г. 11:49:04(UTC)
MWB Dmitry

Статус: Активный участник

Группы: Участники
Зарегистрирован: 13.02.2024(UTC)
Сообщений: 73
Российская Федерация

Сказал(а) «Спасибо»: 2 раз
Код:

var Store = new ActiveXObject("CAdESCOM.Store" );
Store.Open(2, "My", 0);
Store = null;


При запуске из WSH/JSCRIPT изнутри Delphi - та же ошибка, интерфейс не поддерживается.
Offline Андрей *  
#35 Оставлено : 14 февраля 2024 г. 11:50:04(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,719
Мужчина
Российская Федерация

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
Вы писали что в Delphi не работает. Com работает. Причём тут вообще ЯП, если дёргается процесс wscript.exe?
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#36 Оставлено : 14 февраля 2024 г. 11:54:40(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,719
Мужчина
Российская Федерация

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
Автор: MWB Dmitry Перейти к цитате
Код:

var Store = new ActiveXObject("CAdESCOM.Store" );
Store.Open(2, "My", 0);
Store = null;


При запуске из WSH/JSCRIPT изнутри Delphi - та же ошибка, интерфейс не поддерживается.


А если не изнутри, работает?
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#37 Оставлено : 14 февраля 2024 г. 11:56:29(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,719
Мужчина
Российская Федерация

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
Как запускается то? Явно указываете путь к exe?
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#38 Оставлено : 14 февраля 2024 г. 12:05:01(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,719
Мужчина
Российская Федерация

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
Думаю проблема в том, что запускаете не тот exe. Посмотрите через proccess mon что из приложения и что через Explorer запускается.

IMG_20240214_125830_371.jpg (160kb) загружен 3 раз(а).
Техническую поддержку оказываем тут
Наша база знаний
Offline MWB Dmitry  
#39 Оставлено : 14 февраля 2024 г. 12:06:05(UTC)
MWB Dmitry

Статус: Активный участник

Группы: Участники
Зарегистрирован: 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 посмотрел, что конкретно произошло, но... прокладка внутри прокладки
Offline MWB Dmitry  
#40 Оставлено : 14 февраля 2024 г. 12:06:41(UTC)
MWB Dmitry

Статус: Активный участник

Группы: Участники
Зарегистрирован: 13.02.2024(UTC)
Сообщений: 73
Российская Федерация

Сказал(а) «Спасибо»: 2 раз
Автор: Андрей * Перейти к цитате
Думаю проблема в том, что запускаете не тот exe.


EXE не запу3скается вообще

WSH - работает внутри основного EXE

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
5 Страницы«<2345>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.