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 <luka...@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@python.org
https://mail.python.org/mailman/listinfo/python-win32



--
Używam klienta poczty Opera Mail: http://www.opera.com/mail/
_______________________________________________
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32

Reply via email to