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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.07.2012, 12:12   #1
Riota
 
Регистрация: 18.07.2012
Сообщений: 8
Восклицание Регистрация com-объекта через командную строку

Нужно зарегистрировать com объект через командную строку,сom объект выполнен в виде exe файла,если бы это был dll то через команду regsvr32 можно зарегистрировать компонент в системе,а как exe файл регистрируется в системе,через delphi (run-activex register не подходит),причем на delphi7 все работает,а на xe2 нет
Riota вне форума Ответить с цитированием
Старый 18.07.2012, 13:57   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
то через команду regsvr32
EXE так же четко будет регистрироваться, если он действительно СОМ сервер.
Цитата:
причем на delphi7 все работает,а на xe2 нет
Рассказывай как пробовал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.07.2012, 06:30   #3
Riota
 
Регистрация: 18.07.2012
Сообщений: 8
Восклицание

[QUOTE=Stilet;1076258]EXE так же четко будет регистрироваться, если он действительно СОМ сервер.

пробовала,новый созданный com как (automation object) не регистрируется через команду regsvr32,зарегился через команду хххх.regserver,проблема в том что он должен автоматически регистрироваться через командную строку вот код
Код:
procedure ServerRegister;
var
  stGUID: string;
begin
  try
    CoInitialize(nil);
    stGUID := GUIDToString(CLASS_SferaAppServer);
    with TRegistry.Create do
    try
      RootKey := HKEY_CLASSES_ROOT;
      if not OpenKey('\CLSID\' + stGUID, True) then
        exit;
      WriteString('AppID', stGUID);
      CloseKey;
      if not OpenKey('\AppID\' + stGUID, True) then
        exit;
      WriteString('', 'Sfera Application Server');
      WriteString('RunAs', 'Interactive User');
      CloseKey;
    finally
      Free;
    end;
    if CreateComponentCategory(ID_SFERACAT, 'OPC Daten Server V2.0') <> 0 then exit;
    if RegisterCLSIDInCategory(CLASS_SferaAppServer, ID_SFERACAT) <> 0 then exit;
    ToLog('Регистрация сервера выполнена');
    MessageBox(0, 'Регистрация сервера выполнена', 'Sfera Application Server', 0);
  except
    ErrorHandler(Exception(ExceptObject).Message, 'ServerRegister');
  end;
end;
вот почему он на xe2 не работает загадка,может из-за платформы win была 32 стала 64 рассмотрела как и куда записываются гуиды у com сервера http://blog.not-a-kernel-guy.com/2007/04/18/173 не помогло

Последний раз редактировалось Stilet; 19.07.2012 в 07:40.
Riota вне форума Ответить с цитированием
Старый 19.07.2012, 07:41   #4
OCTAGRAM
Oldschool geek
Форумчанин
 
Аватар для OCTAGRAM
 
Регистрация: 09.03.2009
Сообщений: 611
По умолчанию

http://docwiki.embarcadero.com/RADSt...g_a_COM_Object

Цитата:
Out-of-Process Server

* To register an out-of-process (EXE) server, run the server with either:
o The /regserver command-line option
o The /RegServerPerUser command-line option

* To unregister an out-of-process (EXE) server, run the server with either:
o The /unregserver command-line option
o The /UnregServerPerUser command-line option
Если проект COM сервера создан штатным механизмом, при запуске командная строка проверяется на наличие этих параметров.

В Delphi 7 была автоматическая регистрация сервера при запуске без параметров. В Delphi 2007 её убрали.
If you want to get to the top, you have to start at the bottom

http://pascal.net.ru/
OCTAGRAM вне форума Ответить с цитированием
Старый 19.07.2012, 07:42   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
была 32 стала 64
Печалька... Про 64-ку ничего не скажу, не пробовал.
Цитата:
не регистрируется через команду regsvr32
Стоп! А что выдает? Какое сообщение?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.07.2012, 08:53   #6
Riota
 
Регистрация: 18.07.2012
Сообщений: 8
Восклицание

Если проект COM сервера создан штатным механизмом, при запуске командная строка проверяется на наличие этих параметров.

В Delphi 7 была автоматическая регистрация сервера при запуске без параметров. В Delphi 2007 её убрали.[/QUOTE]
Я не поняла какие параметры,можно поподробней пожалуйста
Riota вне форума Ответить с цитированием
Старый 19.07.2012, 08:55   #7
Riota
 
Регистрация: 18.07.2012
Сообщений: 8
По умолчанию

ничего не выдает,просто команда выполняется но com не вызывается из другого приложения,либо когда я его зарегила через delphi(run-activeX server-register) и разрегила через командную строку все равно вызывается.
Riota вне форума Ответить с цитированием
Старый 19.07.2012, 09:00   #8
OCTAGRAM
Oldschool geek
Форумчанин
 
Аватар для OCTAGRAM
 
Регистрация: 09.03.2009
Сообщений: 611
По умолчанию

Цитата:
Сообщение от Riota Посмотреть сообщение
Я не поняла какие параметры,можно поподробней пожалуйста
/regserver для регистрации и /unregserver для обратного эффекта
If you want to get to the top, you have to start at the bottom

http://pascal.net.ru/
OCTAGRAM вне форума Ответить с цитированием
Старый 19.07.2012, 09:05   #9
Riota
 
Регистрация: 18.07.2012
Сообщений: 8
По умолчанию

это я в курсе =),проблема в том что не срабатывает процедура регистрации из кода,через командную строку регистрирует и разрегистрирует com server,а вот через код нет,хотя этот код работает в delphi7
Riota вне форума Ответить с цитированием
Старый 19.07.2012, 10:01   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
win была 32 стала 64
Насчет XP64 не в курсе, а в WIN7 права админа нужны при регистрации
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как через командную строку (Windows XP) открыть файл в программе WordPad? ivan.tiran Windows 1 13.11.2011 15:06
Через командную строку передать два слова и целое число N. gas777 Общие вопросы C/C++ 5 23.06.2011 19:59
Отправка почты из Excel через командную строку zao Microsoft Office Excel 3 06.08.2010 12:10
скрыть командную строку Morphling Помощь студентам 0 01.02.2010 23:35
Передача хэндла через командную строку MaTBeu Win Api 9 29.11.2008 15:30