Sorry, I can't explain that - running pyscript.py should register things and support for IActiveScriptParse is unconditional. You could try running `pyscript.py --debug` which might print some debug stuff, or even add print statements to client.py's QueryInterface function to make sure it's actually being called. Also, executing win32comext/axscript/test/testHost.py should try and exercise the engine.

HTH,

Mark

On 2024-07-31 9:14 a.m., Valentin Abrutski wrote:
Hi Mark. Thank you for the idea.  And appreciate your help.

I tried it. And to be sure that I'm doing it right. I've tried to use this approach to get not only IActiveScriptParse, but also IActiveScript Still the same issue. I can get IActiveScript. But when try to get IActiveScriptParse I get error code: |0x80004002| (|E_NOINTERFACE|)

I've double checked GUID of IActiveScriptParse which is used in QuearyInterface and it looks correct:  BB1A2AE2-A4F9-11cf-8F20-00805F2CD064

I'm thinking about is it possible that the way I registered Python Script Engine is not correct? Is it possible that there are different way to do that?
Just to remind you, I just run python pyscript.py


On Wed, Jul 31, 2024 at 12:58 AM Mark Hammond <mhamm...@skippinet.com.au> wrote:


    On 2024-07-30 4:29 p.m., Valentin Abrutski wrote:
    Hi Mark.

    I double checked what I did with my previous attempt. And still
    can't get success. Probably you can give me an idea of what I'm
    doing wrong.

    I am working on an application(.Net) which provides scripting
    capabilities via AcriveScript Engine. With the ability to debug
    script step by step and etc. And we provide a standard set of
    languages VBScript and JScript. And now we want to provide Python
    support.

    Obviously I need to add a new ActiveScript Engine for Python. to
    system

    What I did. I installed python and installed the pywin32 package.
    Then I found this script
    Python311\Lib\site-packages\win32comext\axscript\client\pyscript.py
    and run it :
    python pyscript.py
    Requesting elevation and retrying...
    Registered: Python

    After that, I go to my application code and do the same we
    already do for Standard JScript or VBScript engines.
    For example, import of COM JScript class  is defined
        [ComImport, Guid("F414C260-6AC0-11CF-B6D1-00AA00BBBB58")]
        public class JScript
        {
        }

    So I defined import class for Python using GUID from python class
    implementation
        [ComImport, Guid("DF630910-1C1D-11d0-AE36-8C0F5E000000")]
        public class PythonScript
        {
        }

    Then my expectation is that I can cast it to IAcriveScript and
    IActiveScripParse (like I do with standard languages)
        _engine = new PythonScript();
        _iap = _engine as IActiveScriptParse;
        _ias = _engine as IActiveScript;

    But IActiveScriptParse still is null, IActiveScript - is good.
    I suppose that probably I did initialization in wrong way? or
    something like that?

    My best guess is that the "as" isn't working due to a lack of a
    typelib for the engine - but a
    QueryInterface(IID_IActiveScriptParse) on the IActiveScript
    interface should work.

    HTH,

    Mark





    On Tue, Jul 30, 2024 at 10:54 PM Valentin Abrutski
    <v...@zaptest.com> wrote:

        Hi Mark

        Appreciate for fast response. I will look into it. Thank you.


        On Tue, Jul 30, 2024 at 5:56 PM Mark Hammond
        <mhamm...@skippinet.com.au> wrote:

            IActiveScriptParse is supported - check out the
            com/win32comext/axscript directory.

            Cheers,

            Mark

            On 2024-07-30 10:14 a.m., Valentin Abrutski wrote:
            Hello all,

            Hopefully somebody can help me.

            Microsoft provides implementations for Microsoft
            Scripting Engine - VbScript and JScript.
            I need to add Python Script Engine support. I see that
            pywin32 already has a component for that(COM object).
            But it exposes only the IActiveScript interface. For my
            needs I also need IActiveScriptParse interface.

            please advise me if pywin32 implements it also and I
            just missed something? or if you have an idea what to do
            to get.. I will appreciate for your help.

            _______________________________________________
            python-win32 mailing list
            python-win32@python.org
            https://mail.python.org/mailman/listinfo/python-win32


_______________________________________________
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32
_______________________________________________
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32

Reply via email to