
    %
i                         d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d Z
d Zd ZddZd Zi Z e	j        d dej                  Z e	j        ee	j                  Z ej        d          Z	  ej        ed          Zn!# ej        $ r  ej        ed	          ZY nw xY wd a e ee          d            es ej        d           eer# ej                      ej        d
           e!dS dS )    Nc                    |t           j        t           j        fv rt          j        |            dS |t           j        k    r|t           j        k    rJt          j        | d          }t          d|           t          j        |            t          |           dS |t           j
        k    rt          j        |            dS dS dS )z1Handles messages from the desktop name dialog boxH   znew desktop name: N)win32conWM_CLOSE
WM_DESTROYwin32guiDestroyWindow
WM_COMMANDIDOKGetDlgItemTextprintcreate_desktopIDCANCEL)hwndmsgwparamlparamdesktop_names        C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\win32/Demos/desktopmanager.pydesktop_name_dlgprocr      s    
x ("5666t$$$$$	#	#	#X]""#24<<L&555"4(((<(((((x((("4((((( 
$	# )(    c                    t           j        t          t           j        t          t           j        t          i}t           j        t           j        z  t           j        z  t           j        z  }t          j
        t          j        d          dd|dgddt           j        dt           j        t           j        z  t           j        z  t           j        z  gddt           j        d	t           j        t           j        z  t           j        z  gd
dddt           j        gddddt           j        gg| |          }t          j        |d           t          j        |d          }t          j        |d           t          j        |           dS )zECreate a dialog box to ask the user for name of desktop to be createdNzOne ugly dialog box !)d   r      r   r   ButtonCreate)
   r         z
Never mind)-   r   2   r   StaticzDesktop name:G   )r   (   F   r   Edit r   )K   r$   Z   r   T)r   r
   r   r   r   	WS_BORDER
WS_VISIBLE
WS_CAPTION
WS_SYSMENUr   CreateDialogIndirectwin32apiGetModuleHandler   
WS_TABSTOP	BS_HOLLOWBS_DEFPUSHBUTTONr   EnableWindow
GetDlgItemSetFocus)parent_hwndmsgsstylehhcontrols        r   get_new_desktop_namer<   !   sq    	1/1D 	

	

	 
	 
 	% &&$&:E1E #%&$% +,	 ! #h&99H<NN ,<h>QRR-x/BC)	
, 	3	 	A8 !T""""1b))H(D)))hr   c                 @   t           dz  a |                                  d|z   }t          j                    }t	          j        d          |_        ||_        t          j	        t          j
        z  t          j        z  |_        t          j        dt          j                  |_        t          j        |_        t$          |_        t          j        |          }t          j        t          j        z  }t          j        |d|z   t          j        ddt          j        t          j        dd|j        d          }t          j        |           t          j        t          j        z  t          j        z  }|t           |t          j        dz   t<          d|z  f}|t>          |<   d}	|	sN	 t          j         dd          }	n5# t          j!        $ r# tD          j#         tI          j%        d	           Y nw xY w|	Nt          j&        t          j'        |           t          j(                     dS )
zRRuns as a thread on each desktop to create a new tray icon and handle its messages   PythonDesktopManagerNr   dm_r   zDesktop Manager (%s)Shell_TrayWndg      ?))idSetThreadDesktopr   WNDCLASSr/   r0   	hInstancelpszClassNamer   
CS_VREDRAW
CS_HREDRAWCS_GLOBALCLASSr9   
LoadCursor	IDC_ARROWhCursorCOLOR_WINDOWhbrBackgroundicon_wndproclpfnWndProcRegisterClassWS_OVERLAPPEDr-   CreateWindowCW_USEDEFAULTUpdateWindowNIF_ICONNIF_MESSAGENIF_TIPWM_USERhiconwindow_info
FindWindowerror	traceback	print_exctimesleepShell_NotifyIconNIM_ADDPumpMessages)
hdeskr   windowclassnamewcwindowclassr9   r   flagsnotify_info
tray_founds
             r   new_iconrl   Q   s    !GB	,|;O				B+D11BL&B"X%888;RRBH$Q(:;;BJ,B!BN(,,K"X%88E 				
 D $ 44x7GGE
2-K $KJ 	!,_dCCJJ~ 	 	 	JsOOOOO	   h.<<<s   F5 5/G'&G'r>   c                 V   t          j                    }d|_        	 t          j        | dt
          j        |          }ny# t          j        $ rg t          j	                     t          j                    }t          j	        d|           t          j        d|                                d           Y dS w xY w|r@t          j                    }| |_        t          j        dddddt
          j        dd|	  	        }t)          j        t,          || f          }|                                 dS )zyCreates a new desktop and spawns a thread running on it
    Will also start a new icon thread on an existing desktop
    r>   r   NzDesktop creation failedzExplorer.exeTzc:\)
pywintypesSECURITY_ATTRIBUTESbInheritHandlewin32serviceCreateDesktopr   MAXIMUM_ALLOWEDr]   r^   r_   ioStringIOr/   
MessageBoxgetvaluewin32processSTARTUPINFO	lpDesktopCreateProcessCREATE_NEW_CONSOLE_threadstart_new_threadrl   SwitchDesktop)r   start_explorersare   errbufsprc_infoths           r   r   r      s3    
	'	)	)BB	*!X5r
 
    D&)))Av002KLLL  
$&&"-'

 

 
	!(UL,A	B	BB	s   !> A2B43B4c           	         |t           j        k    rt          j        |            t	          j        ddt           j                  }t	          j        |t           j                  }t	          j	                    }|
                                }t          j                    }t          |          }	t          d|	dz             D ]}
t           j        }||
dz
                                           dv r|t           j        t           j        z  z  }||
dz
           |k    r|t           j        z  }t          j        |||
||
dz
                      t          j        |t           j        |	dz   d           t          j        |t           j        |	dz   d           t          j                    \  }}t          j        |t           j        t           j        z  t           j        z  ||d| d          }
t          j                     t          j        |           |
|	dz   k    rt7          |            n|
|	dz   k    r`t          j        d           t          j        t          j        t>          |                     t>          | = t@          !                                 nD|
dk    r>t	          j"        ||
dz
           ddt           j                  }|!                                 dS t          j#        | |||          S )	zWindow proc for the tray iconsr   Tr>   )winlogon
disconnectzCreate new ...   ExitN)$r   WM_LBUTTONDOWNr   SetForegroundWindowrq   OpenInputDesktoprs   GetUserObjectInformationUOI_NAMEGetProcessWindowStationEnumDesktopsCreatePopupMenulenrange	MF_STRINGlower	MF_GRAYEDMF_DISABLED
MF_CHECKED
AppendMenuGetCursorPosTrackPopupMenuTPM_LEFTBUTTONTPM_RETURNCMDTPM_NONOTIFYPumpWaitingMessagesDestroyMenur<   PostQuitMessagerb   
NIM_DELETEr[   origin_desktopr   OpenDesktopDefWindowProc)r   r   wplpcurr_desktopcurr_desktop_namewinstadesktopsmdesktop_cntdmf_flagsxyre   s                  r   rO   rO      s   	X$$$$T***#4Qh>VWW(A(+
 
 577&&(($&&(mmq+/** 	A 	AA)HA$$&&*DDDH.1EEEA"333H//8QQ@@@@Ax1;?DTUUUAx1;?FKKK$&&1##h&<<x?TT
 
 	$&&&Qa &&&&+/!!$Q'''%h&9;t;LMMMD!((****UU ,QAx'? E !!!q%dCR888r   T      )r>   )r}   rt   r`   r^   rn   r/   r   r   rx   rq   r   r<   rl   r   rO   r[   r   rs   r   r   r   origin_desktop_namer0   hinstLoadIconrZ   r]   rB   strra   r    r   r   <module>r      s    				                    
) ) )-  -  - `1 1 1h! ! ! !H49 49 49n ..q$8PQQ;l;L)   	! &&*HeQ''EE~ * * *HeS))EEE* ss&'' + + +  DJqMMM     H """DJqMMM      s   9B B)(B)