[python-win32] Global ActiveScripting object not visible

Łukasz Jakubowski lukaszj at onet.pl
Tue Apr 15 22:49:24 CEST 2014


Hi Vernon,

Thanks for the answer.

The DOpus object is not supposed to be created by a user with Dispatch (as  
DO11 author has told me) - DO11 has no ProgID to use. The object is  
brought into script before passing control to it in the same way as fe.  
WScript in case of .pys, by calling AddNamedItem('DOpus',2) (where 2 =  
SCRIPTITEM_ISVISIBLE), as debugging tells me.

I think the problem lies in one of the two steps from the chapter you  
pointed me to:

"""
2. Passes the language engine a series of named items. Each named item is  
a COM object (that is, an IDispatch pointer) with a name and attributes.  
The attributes include whether the item is considered global and whether  
the item fires events.
"""

Something is passed improperly? Python has problem with getting IDispatch  
object (the object works OK with JScript or VBasic)?

"""
3. Each named item is placed in the namespace by the language engine. Any  
named items that fire events have the event-handling mechanism put in  
place. In addition, any object considered global should have all its  
methods and properties made available as global methods and properties.
"""

Object placed incorrectly in the global namespace? Some methods/properties  
not global?

How to check for all the above? Where/how to hook into  
win32com/win32comext?

Regards,


> The message means that no one has defined a meaning for the name "DOpus"  
> to
> Python.
>
> You, as a programmer, must define that name.  If you say:
>>>> DOpus = "Spam and Eggs"
> then you have defined it as a character string which contains three  
> English
> words.
>
> If you say:
>>>> from win32com.client import Dispatch
>>>> DOpus = Dispatch("Wscript.Network")
> then you will have defined it as a Windows COM dispatch object which will
> do things (but not the things _you_ are interested in).  You must  
> discover
> which tool and what name to use to get Directory Opus 11.
>
> After you have defined it correctly, then you can use it.
>
> You might find the information in chapter
> 21<http://www.icodeguru.com/WebServer/Python-Programming-on-Win32/ch21.htm>
>  helpful.
>
>
>
>
> On Tue, Apr 15, 2014 at 11:17 AM, Łukasz Jakubowski <lukaszj at onet.pl>  
> wrote:
>
>>
>> Hello,
>>
>> I have a problem with a file manager called Directory Opus 11. It  
>> supports
>> ActiveScripting languages, but in case of python, its global objects are
>> not visible in global namespace.
>> Python packages (python-3.4.0, pywin32-218.win32-py3.4) seem to be
>> installed correctly (fe. WScript object is visible in .pys scripts), and
>> ActiveScripting engine is actually called by Directory Opus.
>> Where should I start debugging? Are there some possible flags not set or
>> attributes not presented by the Directory Opus objects that could be
>> checked? Any namespaces to be searched?
>>
>> The exact error message is as follows:
>> DOpus.OpenOutputWindow()
>> ^
>> Traceback (most recent call last):
>>   File "<Script Block >", line 6, in <module>
>>     DOpus.OpenOutputWindow()
>> NameError: name 'DOpus' is not defined
>>  (0x80020009)
>>
>> TIA & Regards,
>> Łukasz
>> _______________________________________________
>> python-win32 mailing list
>> python-win32 at python.org
>> https://mail.python.org/mailman/listinfo/python-win32
>>


-- 
Używam klienta poczty Opera Mail: http://www.opera.com/mail/


More information about the python-win32 mailing list