oi ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z dZ dZ dZ d dZ dZiZe jddejZe jee jZejdZ ejedZn!#ej$rejed ZYnwxYwdae eedesejdeer#ejejd e!dSdS) Nc|tjtjfvrtj|dS|tjkr|tjkrJtj|d}td|tj|t|dS|tj krtj|dSdSdS)z1Handles messages from the desktop name dialog boxHznew desktop name: N) win32conWM_CLOSE WM_DESTROYwin32gui DestroyWindow WM_COMMANDIDOKGetDlgItemTextprintcreate_desktopIDCANCEL)hwndmsgwparamlparam desktop_names JC:\PYTHON\Scheduler\python\Lib\site-packages\win32/Demos/desktopmanager.pydesktop_name_dlgprocrs x ("5666t$$$$$ # # # X] " "#24<Q R R-x/B C) ,  3  A8 !T""""1b))H (D))) hrc @tdz a|d|z}tj}t jd|_||_tj tj ztj z|_ tj dtj|_tj|_t$|_tj|}tjtjz}tj|d|ztjddtjtjdd|jd }tj|tjtjztjz}|t|tjdzt<d|zf}|t>|<d} | sN tj dd} n5#tj!$r#tDj#tIj%d YnwxYw| Ntj&tj'|tj(dS) zRRuns as a thread on each desktop to create a new tray icon and handle its messagesPythonDesktopManagerNrdm_rzDesktop Manager (%s) Shell_TrayWndg?))idSetThreadDesktoprWNDCLASSr/r0 hInstance lpszClassNamer CS_VREDRAW CS_HREDRAWCS_GLOBALCLASSr9 LoadCursor IDC_ARROWhCursor COLOR_WINDOW hbrBackground icon_wndproc lpfnWndProc RegisterClass WS_OVERLAPPEDr- CreateWindow CW_USEDEFAULT UpdateWindowNIF_ICON NIF_MESSAGENIF_TIPWM_USERhicon window_info FindWindowerror traceback print_exctimesleepShell_NotifyIconNIM_ADD PumpMessages) hdeskrwindowclassnamewc windowclassr9rflags notify_info tray_founds rnew_iconrlQs!GB ,|;O    B+D11BL&B"X%888;RRBH$Q(:;;BJ,B!BN(,,K  "X%8 8E           D $   4 4x7G GE   2 - K$KJ !,_dCCJJ~       JsOOOOO   h. <<< sF55/G'&G'r>c Vtj}d|_ tj|dt j|}ny#tj$rgtj tj }tj d|tj d|dYdSwxYw|r@tj}||_tjdddddt jdd| }t)jt,||f}|dS)zyCreates a new desktop and spawns a thread running on it Will also start a new icon thread on an existing desktop r>rNzDesktop creation failedz Explorer.exeTzc:\) pywintypesSECURITY_ATTRIBUTESbInheritHandle win32service CreateDesktoprMAXIMUM_ALLOWEDr]r^r_ioStringIOr/ MessageBoxgetvalue win32process STARTUPINFO lpDesktop CreateProcessCREATE_NEW_CONSOLE_threadstart_new_threadrl SwitchDesktop)rstart_explorersareerrbufsprc_infoths rrrs3  ' ) )BB * !X5r    D&)))Av002KLLL     $ & &" -       '        !(UL,A B BB s!>A2B43B4c |tjkrtj|t jddtj}t j|tj}t j }| }tj }t|} td| dzD]} tj} || dz dvr| tjtjzz} || dz |kr| tjz} tj|| | || dz tj|tj| dzdtj|tj| dzdtj\} } tj|tjtjztjz| | d|d} tjtj|| | dzkrt7|n| | dzkr`tjdtjtjt>|t>|=t@!nD| dkr>t j"|| dz ddtj}|!dStj#||||S) zWindow proc for the tray iconsrTr>)winlogon disconnectzCreate new ...ExitN)$rWM_LBUTTONDOWNrSetForegroundWindowrqOpenInputDesktoprsGetUserObjectInformationUOI_NAMEGetProcessWindowStation EnumDesktopsCreatePopupMenulenrange MF_STRINGlower MF_GRAYED MF_DISABLED MF_CHECKED AppendMenu GetCursorPosTrackPopupMenuTPM_LEFTBUTTON TPM_RETURNCMD TPM_NONOTIFYPumpWaitingMessages DestroyMenur<PostQuitMessagerb NIM_DELETEr[origin_desktopr OpenDesktop DefWindowProc)rrwplp curr_desktopcurr_desktop_namewinstadesktopsm desktop_cntdmf_flagsxyres rrOrOs X $$$$T***#4Qh>VWW (A (+  577&&((  $ & &(mm q+/** A AA)HA$$&&*DDDH.1EEEA"333H//  8QQ @ @ @ @Ax1;?DTUUUAx1;?FKKK$&&1  #  #h&< )r}rtr`r^rnr/rrrxrqrr<rlrrOr[rrsrrrorigin_desktop_namer0hinstLoadIconrZr]rBstrrarrrrs  ) ) )- - - `111h!!!!H494949n ..q$8PQQ;l;L) ! &&* H eQ ' 'EE~*** H eS ) )EEE*ss&''+++ DJqMMM  H """DJqMMMs9B B)(B)