-
Привет всем. В F1 сказано, что сие свойство нужно для подключения к удаленной машине на которой запущен COM-сервер. Причем свойсвто ConnectKind автоматом устанавливается в ckRemote. Что бы я не писал в RemoteMachineName -все одно - отказано в доступе. Удаленную тачку вижу.
Подскажите, как подключится.
-
На удаленной "тачке" требуется соотв.настройка DCOM.
-
>Сергей М. © (26.01.07 11:02) [1]
а где ее искать?
В моей проге формируется отчет в виде листа excel.
На моем компе установлен MS Office 2003, на удаленной тоже.
простая тестовая программка подключается к удаленной тачке.
(А может мне только это кажется...)
procedure TForm1.Button1Click(Sender: TObject);
begin
ConnStr:='\\technics2.it.com';
Excel.RemoteMachineName:=ConnStr;
try
Excel.Connect;
SB1.Panels[0].Text:=Excel.RemoteMachineName;
SB1.Panels[1].Text:='Connected';
if Excel.ConnectKind=ckRemote then SB1.Panels[2].Text:='Remote';
Excel.Visible[0]:=true;
except
MessageBox(Handle,PChar(ConnStr),Ошибка подключения',MB_OK+MB_SYSTEMMODAL);
end;
end;
На моем компе и на удаленном excel установлен. А вот на третьем компе - нет, и тестовая программка вообще не запускается. А с этой тачки и нужно коннектиться...
-
> вот на третьем компе - нет ... А с этой тачки и нужно коннектиться
В реестре "тачки"-клиента должна фигурировать инф-ция об Ёхеле как о СОМ-сервере. Тогда все будет работать. Без этого - никак.
Эта инф-ция автоматически появляется в реестре при инсталляции Ёхеля.
Можно на время инсталлировать Ёхель, экспортировать из реестра в текст.файл регистр.информацию о сервере, затем деинсталлировать и вручную импортировать в реестр ранее сохраненные записи.
-
>Сергей М. © (26.01.07 11:49) [3]
А с другой тачки можно инфу импортировать?
И в каком ключе (ключах)реестра описана информация?
Если не трудно, подскажите...
-
> и тестовая программка вообще не запускается.
а как ругается при запуске?
-
>umbra © (26.01.07 12:13) [5]
Первый мессаг:
Исключение неизвесное программное исключение ($xxxxxxx...)по
адресу ($XXXXX...)
Второй мессаг
EOLESysError класс не зарегестрирован
-
> как ругается при запуске?
Ну известно как - "класс не зарегистрирован" ... В реестре-то - пустота)
> tytus © (26.01.07 12:08) [4]
А ты сравни состояние рестров до и после инсталляции сабжа - сам увидишь, какие изменения произоши... Их и вноси.
Кстати, только рестровых записей будет мало - на машине-клиенте нужен еще файл библиотеки типов Ёхеля. Называется он, кажись, Excel.olb. Его следует зарегистрировать с пом. regsvr32.exe.
-
>Сергей М. © (26.01.07 12:23) [7]
На клиенте напряжно устанавливать офис. Можно сказать - вообще лучше не устанавливать и не перегружать.
Может с другого компа залить данные с реестра? И какие ключи?
-
> tytus © (26.01.07 12:39) [8]
А может и не нужно вообще заморачиваться этой идеей ?
Ведь есть же возможность генерировать xls-файлы и без какого-либо участия Excel'а как такового. С некими ограничениями, конечно, но может эти ограничения для твоих отчетов и несущественны ...
Поищи в сети компонет TXLSReadWrite, пощупай его - вполне возможно, что он одним махом решит все твои проблемы.
-
> На клиенте напряжно устанавливать офис.
оффис устанавливать не надо, нужно на кленте зарегистрировать сервер автоматизации. Попробуйте на клиент скопировать Excel.exe и в командной строке выпонить regsvr32 excel.exe, а после этого запустите свою программу.
-
>Сергей М. © (26.01.07 13:01) [9]
Да вообще-то нужно пользователю что-то показать, и при необходимости он (юзер) может и распечтать результат.
>umbra © (26.01.07 13:05) [10]
попробую. А екзешник екселя потом можно убить или не нужно? А вреестре что, писать или уже ничего не надо?
-
>umbra © (26.01.07 13:05) [10]
а куда копировать ексель?
-
> tytus © (26.01.07 13:12) [11]
> вообще-то нужно пользователю что-то показать
Зачем пользователю на другой машине это видеть ? Отчет-то не он запросил, а совсем другой пользователь на совсем другой машине..
Или ты думаешь, что Excel запустится на той машине, на которой его исп.файла нет физически ? Так не бывает)
-
>Сергей М. © (26.01.07 13:24) [13]
Вы правы. Пусть хоть на десятой машине будет отчет. Главное - чтобы прога отработала свое.
А куда ексель скопировать?
-
> А куда ексель скопировать?
>
да куда угодно. В папку своей программы, например.
> А вреестре что, писать или уже ничего не надо?
>
regsvr32 все запишет.
> А екзешник екселя потом можно убить или не нужно?
не знаю. поэкпериментируйте.
-
> куда ексель скопировать?
>
Ну как куда ? Очевидно туда где его нет, но где он нужен)
Но вряд ли он при этом заработает как СОМ-сервер
-
> Но вряд ли он при этом заработает как СОМ-сервер
так работать же он должен на другой машине. Просто у экселя 2003 нет отдельной библиотеки типов, она в экзешнике.
-
> umbra © (26.01.07 14:08) [17]
Логично. Но сомнения тем не менее остаются.
-
>ALL
Выполнил я regsvr32 c:\excel.exe (скопировав екзешник в корень С) на своем компе (где есть Office with Excel) ивот чта оно мне написало:
(цитирую дословно)
c:\excel.exe загружен, но точка входа для DllRegisterServer не найдена.
И вообще, c:\excel.exe не выглядит как .DLL или .OCX файл
вот так-то, и что, делать сие на клиенте?