# -*- coding: utf-8 -*- import time,mmap,sys,os GlobalPVersion='0.1' class wordpad(object): GlobalMMAP=None GlobalPVersion='0.1' @staticmethod def XEenvoi(cde,pdata,maxi=1000): data=cde+'|||'+pdata lendata = str(1000000000+len(data)) wordpad.GlobalMMAP=mmap.mmap(0,maxi,'autoitmmap') wordpad.GlobalMMAP.seek(0) wordpad.GlobalMMAP.write("ENVOI:"+lendata+data) wordpad.GlobalMMAP.flush() #self.GlobalMMAP.close() st=cde+' '*15 #print st[:15],pdata wordpad.XEwaitOK() @staticmethod def XEwaitOK(maxi=1000): #GlobalMMAP=mmap.mmap(0,maxi,'autoitmmap') if wordpad.GlobalMMAP is None: wordpad.GlobalMMAP=mmap.mmap(0,maxi,'autoitmmap') pas=20 #20 = 20e de seconde attente=4*pas vret='' while vret!='OK': wordpad.GlobalMMAP.seek(0) vret='' ret=wordpad.GlobalMMAP.read(maxi) if ret.startswith('RETURN:'): long=int(ret[8:17]) vret=ret[17:17+long] if vret=='OK': break attente-=1 if attente<0: break time.sleep(0.05) return vret def __init__(self, fichier=None): os.system('start "" xwordpad.exe 10') #paramètre: temporisation pour les machines lentes #0 vitesse maxi ; 20 pour un eee-PC ; etc. time.sleep(1) wordpad.XEwaitOK() time.sleep(0.250) if fichier is not None: self.open(fichier) def open(self,fichier=None): if fichier.find("\\")>-1: prefix="" else: prefix=os.getcwd() if prefix[-1]=="\\": prefix=prefix[:-1] prefix += "\\" wordpad.XEenvoi("OUVRIR",prefix+fichier) def saveas(self, fichier, typ=0): """Appel de 'Enregistrer sous', avec le nom du fichier """ if fichier.find("\\")>-1: prefix="" else: prefix=os.getcwd() if prefix[-1]=="\\": prefix=prefix[:-1] prefix += "\\" wordpad.XEenvoi("ENREGISTRERSOUS",prefix+fichier) def u1252(self, chu): try: if type(chu) is unicode: return chu.encode('cp1252','replace') else: return chu except: return repr(chu) def wprint(self, copies=1): """Imprime le document """ for i in range(copies): wordpad.XEenvoi("IMPRIMER","") def quit(self): """ferme le document et WordPad """ wordpad.XEenvoi("FERMER","") def vider(self): """vide tout le contenu du document courant (nouveau document) """ wordpad.XEenvoi("VIDE","") def multiremplace(self, rchaine=''): """ exemple de rchaine : u"_CIVILITE_|Monsieur|_PRENOM_|James|_NOM_|BOND|_DATE_|29.12.2012" """ chair=rchaine.encode('cp1252','ignore') wordpad.XEenvoi("MULTIREMPLACER",chair)