2013-10-08 1 views
2

Я работаю в темноте. Приложение, установленное на моем компьютере корпоративными отцами, позволяет программному доступу к библиотеке отчетов. Я не могу заставить кого-либо сказать мне свойства или методы приложения (кроме нескольких методов, найденных в некоторых скриптах ....)Работа в темноте на приложении OLE

Я использую Access VBA для доступа к приложению, и он загружает его (он показывает GUI, когда выполняется оператор CreateObject().)

Как я могу заставить его перечислить его свойства и методы после его вызова? Вы можете увидеть мои усилия, но он не говорит, что «Object не поддерживает это свойство или метод», когда он выполняет оператор «для каждого».

Sub StartDataNav() 
    Set oleDataNav = CreateObject("DataNavigator.Application") 
    Dim p As Object 
    For Each p In oleDataNav.Properties 

    Next p 

End Sub 

Если потребуется, я могу изменить на C# .net, но я не испытывал, как ссылаясь на то, что я предполагаю, что это не-управляемое приложение ....

+0

Я решил, что объект должен быть зарегистрирован, поэтому я запустил Visual Studio и создал консольное приложение C# .net, а затем установил ссылку на объект DataNavigator. Intellisense теперь показывает методы, хотя он вообще не показывает свойств (что, вероятно, объясняет проблему с выражением «для каждого» выше). Я до сих пор путался, хотя все параметры всех методов являются объектами без информации, отличной от их имени. Я возвращаю коды ошибок и не могу их интерпретировать. Sux .... –

ответ

0

Вы можете использовать TlbInf32. dll (TLI) для проверки публичных членов целевого приложения. http://msdn.microsoft.com/en-us/magazine/bb985086.aspx кажется хорошим началом.

Или просто осмотрите сам TLI, используя браузер объектов (после ссылки на него в VBE).

0

Поместите контрольную точку на линии

Dim p As Object 

и открыть окно местных жителей (View -> Locals).

Это позволит вам увидеть все свойства вашего объекта, расширив объект oleDataNav в окне locals.

Смежные вопросы