<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="IncrediMail 1.0" name=GENERATOR>
<!--IncrdiXMLRemarkStart>
<IncrdiX-Info>
<X-FID>CB5A11CC-B87B-40200B65F-A1197FF3408E</X-FID>
<X-FVER>4.0</X-FVER>
<X-FIT>Letter</X-FIT>
<X-FILE>Letter\style1.imf</X-FILE>
<X-FCOL>Aleksandar Cikota's Collection</X-FCOL>
<X-FCAT>Untitled</X-FCAT>
<X-FDIS>Style1</X-FDIS>
<X-Extensions>SU1CTDEsNDYsgUmBSTQwjSSFhTQ0TTDBnTBNiYGRgYEwmY04TSSFhcWdODiViYHBLEmBSYFJgSxJTUJMMiwwLCxJTUJMMywwLCw=</X-Extensions>
<X-BG></X-BG>
<X-BGT>no-repeat</X-BGT>
<X-BGC>#ffffff</X-BGC>
<X-BGPX>0px</X-BGPX>
<X-BGPY>0px</X-BGPY>
<X-ASN>BCEB29C0-42D3-11D4-BA3E-0050DAC68030</X-ASN>
<X-ASNF>0</X-ASNF>
<X-ASH>BCEB29C0-42D3-11D4-BA3E-0050DAC68030</X-ASH>
<X-ASHF>1</X-ASHF>
<X-AN>C958D3B0-2BF0-11D4-BA28-0050DAC68030</X-AN>
<X-ANF>0</X-ANF>
<X-AP>C958D3B0-2BF0-11D4-BA28-0050DAC68030</X-AP>
<X-APF>1</X-APF>
<X-AD>E3F15280-2BF7-11D4-BA28-0050DAC68030</X-AD>
<X-ADF>0</X-ADF>
<X-AUTO>X-ASN,X-ASH,X-AN,X-AP,X-AD</X-AUTO>
<X-CNT>;</X-CNT>
</IncrdiX-Info>
<IncrdiXMLRemarkEnd-->
</HEAD>
<BODY style="BACKGROUND-POSITION: 0px 0px; FONT-SIZE: 10pt; MARGIN: 0px 10px 10px; BACKGROUND-REPEAT: no-repeat; FONT-FAMILY: Verdana" bgProperties=fixed bgColor=#ffffff background="" scroll=yes SIGCOLOR="0" INCREDIFIXEDFORIMOL="true" ORGYPOS="0">
<TABLE id=INCREDIMAINTABLE cellSpacing=0 cellPadding=2 width="100%" border=0>
<TBODY>
<TR>
<TD id=INCREDITEXTREGION style="FONT-SIZE: 10pt; CURSOR: auto" vAlign=top width="100%">
<DIV>&nbsp;Hi all,</DIV>
<DIV>&nbsp;</DIV>
<DIV>I have a problem with threading. </DIV>
<DIV>It should work, but it cannot open a file (Document.OpenFile) if "def run (self):"&nbsp; is in the code. Else the programm doesn't work.</DIV>
<DIV>&nbsp;</DIV>
<DIV>Code:</DIV>
<DIV>&nbsp;</DIV>
<DIV>import win32com.client<BR>import time<BR>import os<BR>import threading<BR>Document = win32com.client.Dispatch('MaxIm.Document')<BR>Application = win32com.client.Dispatch('MaxIm.Application')<BR>p = win32com.client.dynamic.Dispatch('PinPoint.Plate')</DIV>
<DIV>class TestThread (threading.Thread):</DIV>
<DIV>&nbsp;&nbsp;&nbsp; def run (self):</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; path_to_watch = "F:/Images/VRT/"&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; before = dict ([(f, None) for f in os.listdir (path_to_watch)])<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while 1:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; time.sleep(2)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; after2 = dict ([(f, None) for f in os.listdir (path_to_watch)])<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; added = [f for f in after2 if not f in before]<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if added:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name= ' ,'.join (added)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if str(name[-3:])=='fit':<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print name<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Document.OpenFile('F:/Images/VRT/'+name) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Document.SaveFile('F:/Images/VRT/'+ str(name[0:-4])+'.jpg', 6, 1024,2)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application.CloseAll()<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; before = after2</DIV>
<DIV>TestThread().start()</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>Here the error message:</DIV>
<DIV><BR><EM>&gt;&gt;&gt; Exception in thread Thread-1:<BR>Traceback (most recent call last):<BR>&nbsp; File "C:\Program Files\Python\lib\threading.py", line 442, in __bootstrap<BR>&nbsp;&nbsp;&nbsp; self.run()<BR>&nbsp; File "G:\Robot teleskop\VRT\test\test2.py", line 25, in run<BR>&nbsp;&nbsp;&nbsp; Document.OpenFile('F:/Images/VRT/'+name)<BR>&nbsp; File "C:\Program <BR>Files\Python\Lib\site-packages\win32com\client\dynamic.py", line 496, in <BR>__getattr__<BR>&nbsp;&nbsp;&nbsp; raise AttributeError, "%s.%s" % (self._username_, attr)<BR>AttributeError: MaxIm.Document.OpenFile</EM><BR></DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>What does raise AttributeError, "%s.%s" % (self._username_, attr) mean?</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>If I use&nbsp;win32com.client.gencache.EnsureDispatch() in place of Dispatch the error message looks like that:</DIV>
<DIV>&nbsp;</DIV>
<DIV><EM>Traceback (most recent call last):<BR>&nbsp; File "G:\Robot teleskop\VRT\soft\GUI.py", line 18, in -toplevel-<BR>&nbsp;&nbsp;&nbsp; Document = win32com.client.gencache.EnsureDispatch("MaxIm.Document")<BR>&nbsp; File "C:\Program Files\Python\Lib\site-packages\win32com\client\gencache.py", line 543, in EnsureDispatch<BR>&nbsp;&nbsp;&nbsp; raise TypeError, "This COM object can not automate the makepy process - please run makepy manually for this object"<BR>TypeError: This COM object can not automate the makepy process - please run makepy manually for this object</EM></DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>What should I do? I hope You can help me.</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>For your prompt reply, I say thank you in advance.<BR><BR>Best regards,<BR>Aleksandar <BR></DIV></TD></TR>
<TR>
<TD id=INCREDIFOOTER width="100%">
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width="100%"></TD>
<TD id=INCREDISOUND vAlign=bottom align=middle></TD>
<TD id=INCREDIANIM vAlign=bottom align=middle></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>