[IronPython] AttributeError: '__ComObject' object has no attribute 'Visible' with -X:PreferComDispatch

nekomaho nekomaho at gmail.com
Fri Nov 16 02:46:32 PST 2007


Hi,

I changed registry but I get same error.

IronPython-2.0A6>reg query HKEY_CLASSES_ROOT\CLSID\{00024500-0000-0000-C000-000000000046}\InprocServer32 /s

! REG.EXE VERSION 3.0

HKEY_CLASSES_ROOT\CLSID\{00024500-0000-0000-C000-000000000046}\InprocServer32
    Class       REG_SZ  Microsoft.Office.Interop.Excel.ApplicationClass
    RuntimeVersion      REG_SZ  v1.1.4322

HKEY_CLASSES_ROOT\CLSID\{00024500-0000-0000-C000-000000000046}\InprocServer32\12.0.0.0
    Class       REG_SZ  Microsoft.Office.Interop.Excel.ApplicationClass
    RuntimeVersion      REG_SZ  v1.1.4322

IronPython-2.0A6>ipy.exe -X:PreferComDispatch -X:TabCompletion -X:ExceptionDetail
IronPython console: IronPython 2.0A6 (2.0.11102.00) on .NET 2.0.50727.832
Copyright (c) Microsoft Corporation. All rights reserved.
>>> import clr
>>> from System import Type, Activator
>>> t = Type.GetTypeFromProgID('Excel.Application')
>>> e = Activator.CreateInstance(t)
>>> e.Visible = True
'__ComObject' object has no attribute 'Visible'
   場所 Microsoft.Scripting.Ast.ThrowStatement.DoExecute(CodeContext context)
   場所 Microsoft.Scripting.Ast.Statement.Execute(CodeContext context)
   場所 Microsoft.Scripting.Actions.ActionBinder.UpdateSiteAndExecute[T](CodeContext callerContext, DynamicAction action, Object[] args, Object site, T& target, RuleSet`1& rules)
   場所 Microsoft.Scripting.Actions.DynamicSite`3.UpdateBindingAndInvoke(CodeContext context, T0 arg0, T1 arg1)
   場所 Microsoft.Scripting.Actions.DynamicSiteHelpers.UninitializedTargetHelper`7.Invoke2(DynamicSite`3 site, CodeContext context, T0 arg0, T1 arg1)
   場所 Microsoft.Scripting.Actions.DynamicSite`3.Invoke(CodeContext context, T0 arg0, T1 arg1)
   場所 ##29(Object[] , CodeContext )
   場所 Microsoft.Scripting.ScriptCode.Run(CodeContext codeContext, Boolean tryEvaluate)
   場所 Microsoft.Scripting.ScriptCode.Run(ScriptModule module)
   場所 Microsoft.Scripting.Hosting.CompiledCode.Evaluate(IScriptModule module)
   場所 Microsoft.Scripting.Hosting.ScriptEngine.ExecuteCommand(String code, IScriptModule module)
   場所 Microsoft.Scripting.Shell.CommandLine.RunOneInteraction()
   場所 Microsoft.Scripting.Shell.CommandLine.TryInteractiveAction()
   場所 IronPython.Hosting.PythonCommandLine.TryInteractiveAction()
   場所 Microsoft.Scripting.Shell.CommandLine.RunInteractiveLoop()
AttributeError: '__ComObject' object has no attribute 'Visible'

Thanks

> The behavior currently depends on whether or not the RCW gets strongly-typed when it enters the managed world. As a workaround, the following registry script Misha provided could "fix" your machine by registering the PIA:
> 
> Windows Registry Editor Version 5.00
> 
> [HKEY_CLASSES_ROOT\CLSID\{00024500-0000-0000-C000-000000000046}\InprocServer32]
> "Assembly"="Microsoft.Office.Interop.Excel, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"
> "Class"="Microsoft.Office.Interop.Excel.ApplicationClass"
> "RuntimeVersion"="v1.1.4322"
> 
> [HKEY_CLASSES_ROOT\CLSID\{00024500-0000-0000-C000-000000000046}\InprocServer32\12.0.0.0]
> "Assembly"="Microsoft.Office.Interop.Excel, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"
> "Class"="Microsoft.Office.Interop.Excel.ApplicationClass"
> "RuntimeVersion"="v1.1.4322"
> 
> Your script should work independent of whether the PIA is registered or not. We will look into it and see what is going.
> 
> The implementation of -X:PreferComDispatch is still not complete. We are working on improving it and will enable it by default once all issues are flushed out. You are on the cutting edge and providing us with advance feedback :)
> 
> -----Original Message-----
> From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of nekomaho
> Sent: Thursday, November 15, 2007 4:45 AM
> To: Discussion of IronPython
> Subject: Re: [IronPython] AttributeError: '__ComObject' object has no attribute 'Visible'
> 
> Hi,
> 
> I use Windows XP Pro SP2 ja & Office 2007 Pro ja.
> 
> IronPython-2.0A6>ipy.exe -X:PreferComDispatch -X:TabCompletion -X:ExceptionDetail
> IronPython console: IronPython 2.0A6 (2.0.11102.00) on .NET 2.0.50727.832
> Copyright (c) Microsoft Corporation. All rights reserved.
>>>> import clr
>>>> from System import Type, Activator
>>>> t = Type.GetTypeFromProgID('Excel.Application')
>>>> e = Activator.CreateInstance(t)
>>>> e.Visible = True
> '__ComObject' object has no attribute 'Visible'
>    場所 Microsoft.Scripting.Ast.ThrowStatement.DoExecute(CodeContext context)
>    場所 Microsoft.Scripting.Ast.Statement.Execute(CodeContext context)
>    場所 Microsoft.Scripting.Actions.ActionBinder.UpdateSiteAndExecute[T](CodeContext callerContext, DynamicAction action, Object[] args, Object site, T& target, RuleSet`1& rules)
>    場所 Microsoft.Scripting.Actions.DynamicSite`3.UpdateBindingAndInvoke(CodeContext context, T0 arg0, T1 arg1)
>    場所 Microsoft.Scripting.Actions.DynamicSiteHelpers.UninitializedTargetHelper`7.Invoke2(DynamicSite`3 site, CodeContext context, T0 arg0, T1 arg1)
>    場所 Microsoft.Scripting.Actions.DynamicSite`3.Invoke(CodeContext context, T0 arg0, T1 arg1)
>    場所 ##29(Object[] , CodeContext )
>    場所 Microsoft.Scripting.ScriptCode.Run(CodeContext codeContext, Boolean tryEvaluate)
>    場所 Microsoft.Scripting.ScriptCode.Run(ScriptModule module)
>    場所 Microsoft.Scripting.Hosting.CompiledCode.Evaluate(IScriptModule module)
>    場所 Microsoft.Scripting.Hosting.ScriptEngine.ExecuteCommand(String code, IScriptModule module)
>    場所 Microsoft.Scripting.Shell.CommandLine.RunOneInteraction()
>    場所 Microsoft.Scripting.Shell.CommandLine.TryInteractiveAction()
>    場所 IronPython.Hosting.PythonCommandLine.TryInteractiveAction()
>    場所 Microsoft.Scripting.Shell.CommandLine.RunInteractiveLoop()
> AttributeError: '__ComObject' object has no attribute 'Visible'
> 
> Thanks
> 
>> This works for me as well.  Could you please re-run your code snippet under the -X:ExceptionDetail mode and send us the output?  Also, what versions of Windows and Office are being used?
>>
>> Thanks
>>
>> From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Mohammad Tayseer
>> Sent: Wednesday, November 14, 2007 8:02 AM
>> To: Discussion of IronPython
>> Subject: Re: [IronPython] AttributeError: '__ComObject' object has no attribute 'Visible'
>>
>> It works for me. What version of Excel do you use??
>>
>> Mohammad Tayseer
>> http://spellcoder.com/blogs/tayseer
>>
>> ----- Original Message ----
>> From: nekomaho <nekomaho at gmail.com>
>>
>>
>> Hi,
>>
>> I get AttributeError in IronPython 2.0A6 & A5, but 2.0A4 is ok. why?
>>
>>
>> ________________________________
>> Be a better pen pal. Text or chat with friends inside Yahoo! Mail. See how.<http://us.rd.yahoo.com/evt=51732/*http:/overview.mail.yahoo.com/>
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.ironpython.com
>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
> 


More information about the Users mailing list