a „oe½ã@s|dZddlZddlZddlZddlZddlZddlZddlZddlZGdd„dƒZ e dkrxe ƒZ e  d¡Z e  e d¡dS)z]runproc.py start a process with three inherited pipes. Try to write to and read from those. éNc@seZdZdd„ZdS)ÚProcessc Cs–t ¡}d|_t |d¡\}|_t |d¡\|_}t |d¡\|_}t  ¡}||_ ||_ ||_ tj |_t ¡}t ||j|ddtj¡}t |j¡||_t ||j|ddtj¡}t |j¡||_t d|dddddd|¡ \} } } } t |¡t |¡t |¡t t |jd¡d¡|_|j d¡|j ¡|j ¡t t |jd¡d¡|_t dt!|j "¡ƒƒt t |jd¡d¡|_#t dt!|j# "¡ƒƒdS)NérÚwbzhmmmmm ÚrbzRead on stdout: zRead on stderr: )$Ú win32securityZSECURITY_ATTRIBUTESZbInheritHandleÚ win32pipeZ CreatePipeZhStdin_wZ hStdout_rZ hStderr_rÚ win32processZ STARTUPINFOZ hStdInputZ hStdOutputZ hStdErrorZSTARTF_USESTDHANDLESZdwFlagsÚwin32apiZGetCurrentProcessZDuplicateHandleÚwin32conZDUPLICATE_SAME_ACCESSÚ win32fileZ CloseHandleZ CreateProcessÚosÚfdopenÚmsvcrtZopen_osfhandleÚstdinÚwriteÚflushÚcloseÚstdoutÚprintÚreprÚreadÚstderr) ÚselfZcmdlineZsAttrsZhStdin_rZ hStdout_wZ hStderr_wZ StartupInfoZpidÚtmpZhProcessZhThreadZdwPidZdwTid©rú:C:\Program Files\Certbot\pkgs\win32\Demos\pipes\runproc.pyÚrunsj ú ú ñ       z Process.runN)Ú__name__Ú __module__Ú __qualname__rrrrrrsrÚ__main__z cat.py)Ú__doc__rr r r r rrrrrÚpZGetModuleFileNameZexerrrrrÚs[