Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2014, 22:59   #11
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

К том что используемый COM-объект не зарегистрирован или не существует. Быть может его выпилили. Почитайте MSDN.
Человек_Борща вне форума Ответить с цитированием
Старый 03.02.2014, 23:23   #12
STRELOK-2007
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 144
Восклицание

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
К том что используемый COM-объект не зарегистрирован или не существует. Быть может его выпилили. Почитайте MSDN.
Да как это не существует?

Код:
var
 II, TOBJ: ITestOBJ;

procedure TForm1.Button2Click(Sender: TObject);
begin
 II:=CoTestOBJ.Create;
 II.QueryInterface(ITestOBJ, TOBJ);
end;
Работает же, значит , по идее, должно быть нормально зарегистрировано? Регал запущенной от админа IDE, Project->ActiveX->Register
STRELOK-2007 вне форума Ответить с цитированием
Старый 03.02.2014, 23:36   #13
STRELOK-2007
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 144
Восклицание

Вот так выглядит чутка модифицированная ветка реестра

Код:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{1FDCEE9D-E747-4616-9D00-D55D7FD26B03}]
@="TestOBJ"
"LocalizedString"="@C:\\Users\\VIRUS\\Documents\\RAD Studio\\Projects\\Tests\\COM\\Win32\\Release\\libCOM.dll,-101"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{1FDCEE9D-E747-4616-9D00-D55D7FD26B03}\Elevation]
"Enabled"=dword:00000001
"IconReference"="@%systemroot%\\system32\\imageres.dll,-3"
"LocalizedString"="@C:\\Users\\VIRUS\\Documents\\RAD Studio\\Projects\\Tests\\COM\\Win32\\Release\\libCOM.dll,-101"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{1FDCEE9D-E747-4616-9D00-D55D7FD26B03}\InprocServer32]
@="C:\\Users\\VIRUS\\DOCUME~1\\RADSTU~1\\Projects\\Tests\\COM\\Win32\\Release\\libCOM.dll"
"ThreadingModel"="Apartment"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{1FDCEE9D-E747-4616-9D00-D55D7FD26B03}\ProgID]
@="libCOM.TestOBJ"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{1FDCEE9D-E747-4616-9D00-D55D7FD26B03}\TypeLib]
@="{B6D13396-71C2-4503-B314-65E72F176413}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{1FDCEE9D-E747-4616-9D00-D55D7FD26B03}\Version]
@="1.0"
STRELOK-2007 вне форума Ответить с цитированием
Старый 04.02.2014, 20:14   #14
STRELOK-2007
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 144
По умолчанию

Ребята!

Я не понимаю, что я первый задался данным вопросом и столкнулся с проблемой? Неужели никто не может мне помочь?
STRELOK-2007 вне форума Ответить с цитированием
Старый 04.02.2014, 20:57   #15
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от STRELOK-2007 Посмотреть сообщение
Да как это не существует?
Windows выдаёт то, что есть на самом деле.
Простите, я искренне не желаю Вас обидеть, но проблема здесь по большей части в том, что Вы не дружите с английским.
Впрочем даже без всякого английского, в тех статьях, ссылки на которые я приводил в посте #2, прямым текстом указаны ветки реестра без регистрации в которых "не выйдет каменный цветок".
Сообщение Windows, в данном случае, означает, что dll не зарегистрирована в тех ветках, которые позволят ему работать с UAC, COM Elevation Moniker. Вот и всё. Ничего сверхъестественного.
Streletz вне форума Ответить с цитированием
Старый 04.02.2014, 22:31   #16
STRELOK-2007
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 144
Восклицание

Цитата:
Сообщение от Streletz Посмотреть сообщение
Windows выдаёт то, что есть на самом деле.
Простите, я искренне не желаю Вас обидеть, но проблема здесь по большей части в том, что Вы не дружите с английским.
Впрочем даже без всякого английского, в тех статьях, ссылки на которые я приводил в посте #2, прямым текстом указаны ветки реестра без регистрации в которых "не выйдет каменный цветок".
Сообщение Windows, в данном случае, означает, что dll не зарегистрирована в тех ветках, которые позволят ему работать с UAC, COM Elevation Moniker. Вот и всё. Ничего сверхъестественного.
Да блин, выше несколькими сообщениями я привел ВСЕ ветки реестра, которые надо было иметь, все у меня сделано, но не работает! Везде один чертов копипаст одного бреда на другой, не указываются никакие зависимости, нихрена не указывается - сиди и гадай. Вот я сижу и гадаю, что где и когда?

Нету ни одного ЦЕЛОСТНОГО примера, который ТОЧНО работает без всяких додумываний. Я переписывал УСПЕШНО работающие алгоритмы и с C#, и с ActionScript.

Английский это проблема, да. Но в то-же время, если кто-то понимает его лучше чем я, то почему бы не объяснить мне что и как надо сделать?

Видно -же, что я пытаюсь что-то сделать, а не сижу сложа руки ожидая готовый код. Но до этого не далеко наверное, скоро руки опустятся, потому что хоть ты башкой об стену 10 раз долбанись, не работает нифига.
STRELOK-2007 вне форума Ответить с цитированием
Старый 04.02.2014, 23:09   #17
STRELOK-2007
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 144
Вопрос

Здесь нет ошибок?

Код:
function ConvertStringSecurityDescriptorToSecurityDescriptorW(StringSecurityDescriptor: PChar;
                                                              StringSDRevision: DWORD;
                                                              SecurityDescriptor: PSECURITY_DESCRIPTOR;
                                                              SecurityDescriptorSize: PULONG): Bool;
                                                              stdcall;
                                                              external advapi32 name 'ConvertStringSecurityDescriptorToSecurityDescriptorW';

function GetSecurityDescriptor(const lpszSDDL: LPWSTR; out pSD: PSecurityDescriptor): Boolean;
begin
  Result := ConvertStringSecurityDescriptorToSecurityDescriptorW(lpszSDDL, SDDL_REVISION_1,
    pSD, nil);
end;
А то я решил проверить функцию initialize, как в примере тут (использую их у себя). Выдрал из библиотеки, и заюзал в приложении.
Получаю вот что:
STRELOK-2007 вне форума Ответить с цитированием
Старый 05.02.2014, 00:37   #18
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Английский это проблема, да.
Есть словари и переводчики. Кстати, самая первая статья в моём посте #2 на русском языке.
Цитата:
Но в то-же время, если кто-то понимает его лучше чем я, то почему бы не объяснить мне что и как надо сделать?
Простите, но всё дело в том, что Вам уже объяснили.
Ваша dll не зарегистрирована в тех ветках, которые дают право работать с UAC, COM Elevation Moniker. Тех данных реестра, которые Вы привели в посте #13, может быть вполне достаточно, для "обычной" работы, но не для этого.
Поймите, что Windows в сообщениях об ошибке выдаёт всё так, как оно есть на самом деле. Она просто не видит Вашу dll в ветках реестра которые необходимы для работы с UAC, COM Elevation Moniker. А, не видит потому, что её там нет. Она там не прописана.
Цитата:
Нету ни одного ЦЕЛОСТНОГО примера, который ТОЧНО работает без всяких додумываний.
Простите, но кто обещал, что будет легко?
Streletz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
UAC, автозагрузка и ПО Человек_Борща Win Api 14 28.10.2013 23:30
CreateProcess и UAC XeruH Общие вопросы Delphi 0 02.04.2013 22:16
uac manifest fucil Общие вопросы Delphi 3 10.05.2012 02:02
Delphi vs UAC dyonysos Общие вопросы Delphi 0 02.05.2010 20:02