|
![]() |
#1 |
Участник
|
В аксе используется только Com технология, никакого Net там нет, в VS, использую специальную обертку кома. Просто при вызове функции get__NewEnum() Com объекта пишет что нет таковой. Если бы мне все вернуло не было бы проблем.
objConnection = Com::getObjectEx("WinNT://<mashine name>/LanmanServer"); возвращает нам ком объект ActiveDs, и я начинаю с ним работать, в VS есть for each, а в аксе такого нет, место этого я пишу colResources.get__NewEnum(), и тут получаю, что нет такого метода у ком объекта, хотя остальные методы такие как Add(), GetObject(), Remove() есть. А нужного метода нет. Печаль. PS. Примеры из VisualStudio работоспособные. Просто не хочется создавать сборки, а потом их прикреплять , и закидывать на клиенты. Последний раз редактировалось Kainix; 09.01.2013 в 07:56. |
|
![]() |
#2 |
Участник
|
|
|
![]() |
#3 |
Участник
|
|
|
![]() |
#4 |
Участник
|
Вот родил библиотеку для просмотра кто какие файлы использует по сети.
ClassLibrary4.rar DLL находится в папке ClassLibrary4\ClassLibrary4\bin\Debug пример использования X++: static void Job1171(Args _args) { FileInfo3.GetFilesInfo FileInfo3 = new FileInfo3.GetFilesInfo(); ; FileInfo3.getFilesInfo("MashineName"); FileInfo3.firstElement(); while(FileInfo3.moveNext()) { FileInfo3.currentElement(); info(FileInfo3.getPathName()); info(FileInfo3.getUserName()); } FileInfo3.getFileInfo("MashineName", "FullFileName"); FileInfo3.currentElement(); info(FileInfo3.getPathName()); info(FileInfo3.getUserName()); } Еще замечание, что в ходе тестирования было выяснено что не все программы оставляют след что ими открыт файл, т.е. если открыть txt блокнотом, то через несколько секунд он исчезает из списка открытых файлов, openiles тоже не видит. Приложения офиса работают стабильно. Будьте внимательны при использовании. Всем спасибо за советы Последний раз редактировалось Kainix; 10.01.2013 в 09:25. |
|
![]() |
#5 |
Участник
|
Цитата:
X++: comEnum = new COMEnum2Object(objConnection); obj = comEnum.getFirst(); while (obj) { ....... obj= comEnum.getNext(); } |
|
|
За это сообщение автора поблагодарили: Kainix (1). |
![]() |
#6 |
Участник
|
Спасибо michel1971, за дельный совет. Написал
X++: static void Job1171(Args _args) { Com IADsFileServiceOperations = Com::getObjectEx("WinNT://adm-hp22/LanmanServer"); Com IADsCollection; Com IADsResource; COMEnum2Object IADsEnumerator; Int counter; ; IADsCollection = IADsFileServiceOperations.Resources(); IADsEnumerator = new COMEnum2Object(IADsCollection); counter = IADsEnumerator.usageCount(); info(strfmt("%1", counter)); IADsResource = IADsEnumerator.getFirst(); while(IADsResource) { info(IADsResource.User() + ";" + IADsResource.Path()); IADsResource = IADsEnumerator.getNext(); } } Прихожу к выводу что буду писать DLL через NetFileEnum доставать только нужный файл, и работать только с ним. И еще вопрос, что лучше писать Com объект или DLL? Последний раз редактировалось Kainix; 09.01.2013 в 16:20. |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|