Hello!<br><br>I try use Microsoft Word and OpenOffice with Python - and
i have some problems. How to disable &quot;Save As&quot; in word from python
code, or how to cancel this function when user use it? This code below
doesn&#39;t work :/
<br><br>wxPython <a href="http://2.8.4.2/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">2.8.4.2</a><br>Python 2.4.4<br><br><br><br>from win32com.client import DispatchWithEvents, Dispatch<br>import msvcrt, pythoncom
<br>import time, sys<br>import types<br>import os <br>
import threading<br>import wx<br>stopEvent = threading.Event()<br><br>##############################<div id="mb_0">#################################################<br>class WordEvents:<br>###############################################################################
<br>&nbsp; def OnDocumentChange(self):<br>&nbsp;&nbsp;&nbsp; self.seen_events[&quot;OnDocumentChange&quot;] = None<br>&nbsp;&nbsp;&nbsp; print &quot;OnDocumentChange&quot;<br><br>&nbsp; def OnWindowActivate(self, doc, wn):<br>&nbsp;&nbsp;&nbsp; self.seen_events[&quot;OnWindowActivate&quot;] = None
<br>&nbsp;&nbsp;&nbsp; print &quot;OnWindowActivate&quot;<br><br>&nbsp; def OnQuit(self):<br>&nbsp;&nbsp;&nbsp; print &quot;OnQuit&quot;<br>&nbsp;&nbsp;&nbsp; self.seen_events[&quot;OnQuit&quot;] = None<br>&nbsp;&nbsp;&nbsp; stopEvent.set()<br><br>&nbsp; def OnStartup(self):<br>&nbsp;&nbsp;&nbsp; print &quot;OnStartup&quot;
<br>&nbsp;&nbsp;&nbsp; self.seen_events[&quot;OnStartup&quot;] = None<br><br>&nbsp; def OnDocumentBeforeSave(self, Doc, SaveAsUI, Cancel):<br>&nbsp;&nbsp;&nbsp; print &quot;OnDocumentBeforeSave&quot;<br>&nbsp;&nbsp;&nbsp; print &quot;SaveAsUI:&quot;, SaveAsUI<br>&nbsp;&nbsp;&nbsp; if SaveAsUI:
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cancel = True<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return<br>&nbsp;&nbsp;&nbsp; self.seen_events[&quot;OnDocumentBeforeSave&quot;] = None<br>&nbsp; <br>&nbsp; def OnDocumentBeforeClose(self):<br>&nbsp;&nbsp;&nbsp; print &quot;OnDocumentBeforeClose&quot;<br>&nbsp;&nbsp;&nbsp; self.seen_events[&quot;OnDocumentBeforeClose&quot;] = None
<br><br>###############################################################################<br>class MyWord:<br>###############################################################################<br>&nbsp; def __init__(self):<br>&nbsp;&nbsp;&nbsp; 
self.wordApp
 = None<br>&nbsp;&nbsp;&nbsp; self.wordDoc = None<br><br>&nbsp; def __del__(self):<br>&nbsp;&nbsp;&nbsp; pythoncom.CoUninitialize()<br><br>&nbsp; def Init(self):<br>&nbsp;&nbsp;&nbsp; self.wordApp = DispatchWithEvents(&#39;Word.Application&#39;, WordEvents)<br>&nbsp;&nbsp;&nbsp; self.wordApp.seen_events

 = {}<br>&nbsp;&nbsp;&nbsp; self.wordApp.Visible = 0<br>&nbsp;&nbsp;&nbsp; self.wordDoc = self.wordApp.Documents.Add()<br><br>&nbsp; def Start(self):<br>&nbsp;&nbsp;&nbsp; print &quot;Start...&quot;<br>&nbsp;&nbsp;&nbsp; s = self.wordDoc.Sentences(1)<br>&nbsp;&nbsp;&nbsp; s.Text = &#39;Hello world !&#39;
<br>&nbsp;&nbsp;&nbsp; self.wordDoc.Saved = 1<br>&nbsp;&nbsp;&nbsp; self.wordApp.Visible = 1<br><br>&nbsp; def WaitForFinish(self):<br>&nbsp;&nbsp;&nbsp; while True:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pythoncom.PumpWaitingMessages()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if not self.wordApp.Visible: # jesli zamkniecie worda to czas wyjsc
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; except pythoncom.com_error:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pass<br>&nbsp;&nbsp;&nbsp; return 1<br><br>&nbsp; def Wait(self):<br>&nbsp;&nbsp;&nbsp; return self.WaitForFinish()<br><br>&nbsp; def Stop(self):<br>&nbsp;&nbsp;&nbsp; self.wordApp.Quit()<br><br><br>###############################################################################
<br>word_ed = MyWord()<br>word_ed.Init()<br>word_ed.Start()<br>word_ed.Wait()<br></div>