> I am trying to use ScriptControl under Excel (Windows XP)
> with the code:
>
> Global sc As New MSScriptControl.ScriptControl
>
> Public Function os_getcwd()
>     sc.Language = "python"
>     sc.ExecuteStatement ("import os")
>     os_getcwd = sc.Eval("os.getcwd()")
> End Function
>
> When setting the language to python I have the error "A
> script engine for
> the specified language..."
>
> On the other side, under python, the translated code:
>
> import win32com.client
>
> sc=win32com.client.Dispatch("ScriptControl")
> sc.Language = "python"
> sc.ExecuteStatement ("import os")
> print sc.Eval("os.getcwd()")
>
> works without any problem !
>
> So, is it possible that a different set of permissions for languages
> available in ScriptControl is used when executed from Excel
> or from python ?
> Is it possible to ask the available languages to ScriptControl ?

I'm guessing that Excel is adding some restriction to the languages that can
be used - maybe only those marked "safe for scripting".


If you register the ActiveScript engine with debugging
(win32comext\axscript\client\pyscript.py --debug), and view the Pythonwin
"Remote Trace Collector" tool, you may end up with additional clues - eg,
maybe Python is being instantiated, but then queried for an unknown
interface, or an attempt is made to make the engine "restricted", which
would fail.

With debug enabled, I see the trace in the "Remote Trace Collector" when running the python script. But nothing happens when I run the VBA excel macro.
I guess the security feature is higher in the stack of calls but I do not have a clue on how to change it.



Mark



_______________________________________________
Python-win32 mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to