a „oe™$ã@sœddlZddlZddlZddlZddlmZiadagd¢Zdd„Z dd „Z dd d „Z d d „Z ddl Z ddlmZejr€e jZne jZGdd„dejƒZdS)éNé)Úappéd))ZBrowserz"win32ui.GetApp().OnViewBrowse(0,0))zBrowse PythonPathz>from pywin.tools import browseProjects;browseProjects.Browse())zEdit Python Pathz6from pywin.tools import regedit;regedit.EditRegistry())zCOM Makepy utilityz0from win32com.client import makepy;makepy.main())z COM BrowserzAfrom win32com.client import combrowse;combrowse.main(modal=False))zTrace Collector Debugging toolzHfrom pywin.tools import TraceCollector;TraceCollector.MakeOutputWindow()cCsbg}d}t d|dd¡}|dkr$qNt d|dd¡}| ||f¡|d}qt|ƒdkr^t}|S)Nrú Tools Menu\%sÚÚCommandr)Úwin32uiZ GetProfileValÚappendÚlenÚdefaultToolMenuItems)ÚitemsZlookNoÚmenuÚcmd©rúCC:\Program Files\Certbot\pkgs\pythonwin\pywin\framework\toolmenu.pyÚLoadToolMenuItems"s  rcCsÀzt ¡}t |d¡}Wntjy0d}Yn0|durrzt |d¡}WntjybYqrYn0t ||¡q:|tkr~dSd}|D]4\}}t d|d|¡t d|d|¡|d}q†dS)Nz Tools Menurrrrr) rZGetAppRegistryKeyÚwin32apiZ RegOpenKeyÚerrorZ RegEnumKeyZ RegDeleteKeyr ZWriteProfileVal)r ZmainKeyZtoolKeyZsubkeyÚitemNor rrrrÚWriteToolMenuItems3s$   rcCs¤t ¡}tƒ}|D]D\}}|||ftt<| tjtjBt|¡t  ¡  t t¡tdaq|durx|  ¡d}|dkrxd}|  |tjtjBtjBtjB| ¡d¡dS)Nrérz&Tools)rZCreatePopupMenurÚtoolsÚidPosZ AppendMenuÚwin32conZ MF_ENABLEDZ MF_STRINGZ GetMainFrameÚ HookCommandÚHandleToolCommandZGetMenuItemCountZ InsertMenuZ MF_BYPOSITIONZMF_POPUPZ GetHandle)r ZmenuPosZ toolsMenur Ú menuStringrrrrÚ SetToolsMenuMs2 ÿ  ÿþýùrc Csddl}ddl}t|\}}}t d|d¡| dd|¡}t d¡d}ztjj j }dtjj _ Wnt t fyxYn0zt d|ƒd}Wn8ty¤d}Yn$td|ƒ| ¡d}Yn0|durÚ|tjj _ t d¡|rîd} nd |} t | d¡dS) NrzExecuting tool %srz\\nÚ z%s zFailed to execute command: %szCompleted successfully.zError executing %s.)ÚreÚ tracebackrrZ SetStatusTextÚsubZ DoWaitCursorÚsysÚstdoutÚtemplateZ writeQueueingÚ NameErrorÚAttributeErrorÚexecÚ SystemExitÚprintÚ print_exc) rÚcoderr rZpyCmdÚdescZoldFlagZworkedÚtextrrrrps8        r)Údialogc@sTeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dS)ÚToolMenuPropPagecCsd|_tj |tj¡dS)Nr)ÚbImChangingEditControlsr.Ú PropertyPageÚ__init__rZIDD_PP_TOOLMENU)Úselfrrrr2ŸszToolMenuPropPage.__init__c CsR| tj¡|_| tj¡|_| |jtj¡| |jtj¡|  |j t j ¡|  |j t j¡| |jtj¡| |jtj¡| |jtj¡| |jtj¡| tj¡}| ¡}|d|d}|dt tj¡d}t j|df}| d|¡t j|df}| d|¡d}tƒD],\}}| ||¡| |d|¡|d}q||_ t!j" #|¡S)Nrrrz Menu TextzPython Command)$Z GetDlgItemrZ IDC_EDIT2ÚeditMenuCommandZ IDC_BUTTON3ZbutNewrÚOnCommandEditControlsZ IDC_EDIT1Z HookNotifyÚOnNotifyListControlÚcommctrlZLVN_ITEMCHANGEDÚOnNotifyListControlEndLabelEditÚLVN_ENDLABELEDITÚ OnButtonNewÚOnButtonDeleteZ IDC_BUTTON4Ú OnButtonMoveÚ IDC_BUTTON1Z IDC_BUTTON2Z IDC_LIST1Z GetWindowRectrZGetSystemMetricsrZ SM_CXBORDERZ LVCFMT_LEFTZ InsertColumnrÚ InsertItemÚ SetItemTextÚ listControlr.r1Ú OnInitDialog) r3ZlcZrectZcxZcolSizeÚitemrr,rrrrrA£s2       zToolMenuPropPage.OnInitDialogcCspg}d}z2|j |d¡}|s Wq^| ||j |d¡f¡WntjyRYq^Yn0|d}qt|ƒ|j ¡S)Nrr)r@Ú GetItemTextr rrrZ_obj_ÚOnOK)r3r ZitemLookr-rrrrDÊs  zToolMenuPropPage.OnOKcCs>|tjkr:|js:|j dtj¡}|j ¡}|j  |d|¡dS)Néÿÿÿÿrr) rZ EN_CHANGEr0r@Ú GetNextItemr7Ú LVNI_SELECTEDr4Ú GetWindowTextr?)r3ÚidrrÚnewTextrrrr5Ûs  z&ToolMenuPropPage.OnCommandEditControlscCs2|j ¡ ¡}|j dtj¡}|j |d|¡dS)NrEr)r@ZGetEditControlrHrFr7rGr?)r3rIrrJrrrrr8äsz0ToolMenuPropPage.OnNotifyListControlEndLabelEditcCshz|j dtj¡}Wntjy*YdS0d|_z(|j |d¡}|j  |d¡Wd|_nd|_0dS)NrErér) r@rFr7rGrrr0ZGetItemr4Z SetWindowText)r3rIrrrBrrrr6ész$ToolMenuPropPage.OnNotifyListControlcCs4|tjkr0|j ¡}|j |d¡|j |d¡dS)NzClick to edit the textr)rÚ BN_CLICKEDr@Ú GetItemCountr>Z EnsureVisible)r3rIrZnewIndexrrrr:ùs  zToolMenuPropPage.OnButtonNewcCsà|tjkrÜz|j dtj¡}Wntjy4YdS0|j |d¡}|j |d¡}|tj kr˜|dkrÜ|j  |¡|j  |d|¡|j  |dd|¡nD||j  ¡dkrÜ|j  |¡|j  |d|¡|j  |dd|¡dS)NrErr)rrLr@rFr7rGrrrCr=Ú DeleteItemr>r?rM)r3rIrrr rrrr<ÿs     zToolMenuPropPage.OnButtonMovecCsF|tjkrBz|j dtj¡}Wntjy4YdS0|j |¡dS)NrE) rrLr@rFr7rGrrrN)r3rIrrrrrr;s  zToolMenuPropPage.OnButtonDeleteN) Ú__name__Ú __module__Ú __qualname__r2rArDr5r8r6r:r<r;rrrrr/žs' r/)N)r"rrrrrrrr rrrrr7Z pywin.mfcr.ÚUNICODEZLVN_ENDLABELEDITWr9ZLVN_ENDLABELEDITAr1r/rrrrÚs"  #%