#include #include #include #include #include #include #include #include #include #include #include #NoTrayIcon #AutoIt3Wrapper_Icon=Projetexer.ico #AutoIt3Wrapper_Run_AU3Check=N Opt ("TrayMenuMode", 3) Opt ("TrayAutoPause", 0) Opt ("TrayOnEventMode", 1) Opt ("WinTitleMatchMode", 3) Opt ("GUIResizeMode", $GUI_DOCKALL) Opt ("TrayIconHide", 0) Global $app_title = "My App" If not _Singleton ($app_title, 1) Then MsgBox (262160, $app_title, "Another instance of " & $app_title & " is running!") Exit EndIf Global $gui_min_width = 336, $gui_min_height = 355 Global $win_position[4] = [-1, -1, $gui_min_width, $gui_min_height] Global $win_size_diff = GetWinSizeDiff (BitOR ($GUI_SS_DEFAULT_GUI, $WS_SIZEBOX, $WS_MAXIMIZEBOX)) Global $gui_left = $win_position[0], $gui_top = $win_position[1] Global $gui_width = $win_position[2] - $win_size_diff[0], $gui_height = $win_position[3] - $win_size_diff[1] Global $gui = GUICreate ($app_title, $gui_width, $gui_height, $gui_left, $gui_top, BitOR ($GUI_SS_DEFAULT_GUI, $WS_SIZEBOX, $WS_MAXIMIZEBOX), $WS_EX_ACCEPTFILES) Global $tab = GUICtrlCreateTab (0, 0, 0, 0);, BitOR ($GUI_SS_DEFAULT_TAB, $TCS_FOCUSONBUTTONDOWN)) GUICtrlCreateTabItem ("Projects") Global $prj_logic_label = GUICtrlCreateLabel ("Logic:", 0, 0, -1, 16) Global $prj_logic_listview = GUICtrlCreateListView ("Project|Populate|Process", 0, 0, 0, 0) Global $prj_excel_file_label = GUICtrlCreateLabel ("Excel file:", 0, 0, -1, 16) Global $prj_excel_file_input = GUICtrlCreateInput ("", 0, 0, 0, 21, BitOR ($GUI_SS_DEFAULT_INPUT, $ES_OEMCONVERT)) Global $prj_browse_button = GUICtrlCreateButton ("...", 0, 0, 24, 21) Global $prj_open_button = GUICtrlCreateButton (">", 0, 0, 24, 21) Global $prj_insert_button = GUICtrlCreateButton ("Insert", 0, 0, 64, 21) Global $prj_delete_button = GUICtrlCreateButton ("Delete", 0, 0, 64, 21) GUICtrlCreateTabItem ("Client") Global $clt_group_label = GUICtrlCreateLabel ("Group:", 0, 0, -1, 16) Global $clt_group_input = GUICtrlCreateInput ("", 0, 0, 0, 21) Global $clt_scheme_label = GUICtrlCreateLabel ("Scheme:", 0, 0, -1, 16) Global $clt_scheme_listview = GUICtrlCreateListView ("Match|Percent", 0, 0, 0, 0) Global $clt_insert_button = GUICtrlCreateButton ("Insert", 0, 0, 64, 21) Global $clt_delete_button = GUICtrlCreateButton ("Delete", 0, 0, 64, 21) GUICtrlCreateTabItem ("Job names") Global $jnm_postfixes_label = GUICtrlCreateLabel ("Postfixes:", 0, 0, -1, 16) Global $jnm_postfixes_listview = GUICtrlCreateListView ("Service|Postfix", 0, 0, 0, 0) Global $jnm_add_checkbox = GUICtrlCreateCheckbox ("Add postfixes to job names", 0, 0, 144, 16) Global $jnm_insert_button = GUICtrlCreateButton ("Insert", 0, 0, 64, 21) Global $jnm_delete_button = GUICtrlCreateButton ("Delete", 0, 0, 64, 21) GUICtrlCreateTabItem ("Services") Global $srv_services_label = GUICtrlCreateLabel ("Services:", 0, 0, -1, 16) Global $srv_services_listview = GUICtrlCreateListView ("Locale|Service", 0, 0, 0, 0) Global $srv_insert_button = GUICtrlCreateButton ("Insert", 0, 0, 64, 21) Global $srv_delete_button = GUICtrlCreateButton ("Delete", 0, 0, 64, 21) GUICtrlCreateTabItem ("Credentials") Global $crd_url_label = GUICtrlCreateLabel ("URL:", 0, 0, -1, 16) Global $crd_url_input = GUICtrlCreateInput ("", 0, 0, 0, 21) Global $crd_credentials_label = GUICtrlCreateLabel ("Credentials:", 0, 0, -1, 16) Global $crd_credentials_listview = GUICtrlCreateListView ("Locale|Login|Password", 0, 0, 0, 0) Global $crd_insert_button = GUICtrlCreateButton ("Insert", 0, 0, 64, 21) Global $crd_delete_button = GUICtrlCreateButton ("Delete", 0, 0, 64, 21) GUICtrlCreateTabItem ("") Global $progress_bar = GUICtrlCreateProgress (0, 0) Global $populate_button = GUICtrlCreateButton ("Populate", 0, 0, 72, 24) Global $process_button = GUICtrlCreateButton ("Process", 0, 0, 72, 24) GUICtrlSetState ($prj_excel_file_input, $GUI_DROPACCEPTED) Global $prj_logic_listview_id = _GUIListViewEx_Init ($prj_logic_listview, "", 0, 0xFF0000, true, 115) Global $clt_scheme_listview_id = _GUIListViewEx_Init ($clt_scheme_listview, "", 0, 0xFF0000, true, 83) Global $jnm_postfixes_listview_id = _GUIListViewEx_Init ($jnm_postfixes_listview, "", 0, 0xFF0000, true, 83) Global $srv_services_listview_id = _GUIListViewEx_Init ($srv_services_listview, "", 0, 0xFF0000, true, 83) Global $crd_credentials_listview_id = _GUIListViewEx_Init ($crd_credentials_listview, "", 0, 0xFF0000, true, 83) _GUIListViewEx_ComboData ($prj_logic_listview_id, 0, "", false) _GUIListViewEx_ComboData ($prj_logic_listview_id, 1, "None", true) _GUIListViewEx_ComboData ($prj_logic_listview_id, 2, "None", true) _GUIListViewEx_SetActive ($prj_logic_listview_id) _GUIListViewEx_MsgRegister (true, true, true) GUIRegisterMsg ($WM_GETMINMAXINFO, "WMGetMinMaxInfo") GUIRegisterMsg ($WM_SIZE, "WMSize") WMSize ($gui, $WM_SIZE, 0, _WinAPI_MakeLong ($gui_width, $gui_height)) GUISetState (@SW_SHOW, $gui) TraySetToolTip ($app_title & @CRLF & "Ready") Global $gui_message, $old_win_position, $win_resized = false While $gui_message <> $GUI_EVENT_CLOSE $gui_message = GUIGetMsg () If not BitAND (WinGetState ($gui), 16) and not BitAND (WinGetState ($gui), 32) Then $win_position = WinGetPos ($gui) If $win_resized and (BitAND (WinGetState ($gui), 16) or BitAND (WinGetState ($gui), 32)) Then $old_win_position = $win_position $win_resized = false EndIf Switch $gui_message Case $tab _GUIListViewEx_SetActive (GUICtrlRead ($tab) + 1) Case $prj_insert_button, $clt_insert_button, $jnm_insert_button, $srv_insert_button, $crd_insert_button _GUIListViewEx_Insert ("") Case $prj_delete_button, $clt_delete_button, $jnm_delete_button, $srv_delete_button, $crd_delete_button _GUIListViewEx_Delete () EndSwitch _GUIListViewEx_EditOnClick (33) Sleep (10) WEnd Func GetWinSizeDiff ($p_style = $GUI_SS_DEFAULT_GUI, $p_exstyle = 0) Local $dummy_gui = GUICreate ("", 0, 0, -32000, -32000, $p_style, $p_exstyle) Local $dummy_gui_pos = WinGetPos ($dummy_gui) Local $dummy_gui_size = WinGetClientSize ($dummy_gui) Local $dummy_gui_size_diff[2] = [$dummy_gui_pos[2] - $dummy_gui_size[0], $dummy_gui_pos[3] - $dummy_gui_size[1]] GUIDelete ($dummy_gui) Return $dummy_gui_size_diff EndFunc Func WMGetMinMaxInfo ($h_wnd, $msg, $w_param, $l_param) Local $dll_struct = DllStructCreate ("int;int;int;int;int;int;int;int;int;int", $l_param) If @error Then Return DllStructSetData ($dll_struct, 7, $gui_min_width) DllStructSetData ($dll_struct, 8, $gui_min_height) $dll_struct = 0 Return 0 EndFunc Func WMSize ($h_wnd, $msg, $w_param, $l_param) $gui_width = _WinAPI_LoWord ($l_param) $gui_height = _WinAPI_HiWord ($l_param) GUICtrlSetPos ($tab, 8, 8, $gui_width - 16, $gui_height - 48) GUICtrlSetPos ($prj_logic_label, 8 + 12, 8 + 33) GUICtrlSetPos ($prj_logic_listview, 8 + 12, 24 + 33, $gui_width - 40, $gui_height - 189) GUICtrlSetPos ($prj_excel_file_label, 8 + 12, $gui_height - 157 + 33) GUICtrlSetPos ($prj_excel_file_input, 8 + 12, $gui_height - 141 + 33, $gui_width - 88) GUICtrlSetPos ($prj_browse_button, $gui_width - 80 + 12, $gui_height - 141 + 33) GUICtrlSetPos ($prj_open_button, $gui_width - 56 + 12, $gui_height - 141 + 33) GUICtrlSetPos ($prj_insert_button, $gui_width - 160 + 12, $gui_height - 109 + 33) GUICtrlSetPos ($prj_delete_button, $gui_width - 96 + 12, $gui_height - 109 + 33) GUICtrlSetPos ($clt_group_label, 8 + 12, 8 + 33) GUICtrlSetPos ($clt_group_input, 8 + 12, 24 + 33, $gui_width - 40) GUICtrlSetPos ($clt_scheme_label, 8 + 12, 56 + 33) GUICtrlSetPos ($clt_scheme_listview, 8 + 12, 72 + 33, $gui_width - 40, $gui_height - 189) GUICtrlSetPos ($clt_insert_button, $gui_width - 160 + 12, $gui_height - 109 + 33) GUICtrlSetPos ($clt_delete_button, $gui_width - 96 + 12, $gui_height - 109 + 33) GUICtrlSetPos ($jnm_postfixes_label, 8 + 12, 8 + 33) GUICtrlSetPos ($jnm_postfixes_listview, 8 + 12, 24 + 33, $gui_width - 40, $gui_height - 141) GUICtrlSetPos ($jnm_add_checkbox, 8 + 12, $gui_height - 109 + 33) GUICtrlSetPos ($jnm_insert_button, $gui_width - 160 + 12, $gui_height - 109 + 33) GUICtrlSetPos ($jnm_delete_button, $gui_width - 96 + 12, $gui_height - 109 + 33) GUICtrlSetPos ($srv_services_label, 8 + 12, 8 + 33) GUICtrlSetPos ($srv_services_listview, 8 + 12, 24 + 33, $gui_width - 40, $gui_height - 141) GUICtrlSetPos ($srv_insert_button, $gui_width - 160 + 12, $gui_height - 109 + 33) GUICtrlSetPos ($srv_delete_button, $gui_width - 96 + 12, $gui_height - 109 + 33) GUICtrlSetPos ($crd_url_label, 8 + 12, 8 + 33) GUICtrlSetPos ($crd_url_input, 8 + 12, 24 + 33, $gui_width - 40) GUICtrlSetPos ($crd_credentials_label, 8 + 12, 56 + 33) GUICtrlSetPos ($crd_credentials_listview, 8 + 12, 72 + 33, $gui_width - 40, $gui_height - 189) GUICtrlSetPos ($crd_insert_button, $gui_width - 160 + 12, $gui_height - 109 + 33) GUICtrlSetPos ($crd_delete_button, $gui_width - 96 + 12, $gui_height - 109 + 33) GUICtrlSetPos ($progress_bar, 8, $gui_height - 32, $gui_width - 168) GUICtrlSetPos ($populate_button, $gui_width - 152, $gui_height - 32) GUICtrlSetPos ($process_button, $gui_width - 80, $gui_height - 32) $win_resized = true Return $GUI_RUNDEFMSG EndFunc