MoriceGrene Posted 9 hours ago Posted 9 hours ago Hi uys i have this code expandcollapse popup#AutoIt3Wrapper_icon=Meteora.ico #AutoIt3Wrapper_UseUpx=n #include <GUIConstantsEx.au3> #include <MsgBoxConstants.au3> #include <GUIConstants.au3> #include <WindowsConstants.au3> #include <Inet.au3> #include <File.au3> #include <TrayConstants.au3> #include "GuiFlatButton.au3" #include <WinHttp.au3> #include <Array.au3> #include <Misc.au3> #include <TabConstants.au3> ; === Opzioni tray === Opt("TrayIconHide", 0) Opt("TrayMenuMode", 1) Opt("TrayOnEventMode", 1) Opt("GuiOnEventMode", 1) Opt("GUICloseOnESC", 0) Opt("GUIResizeMode", 128) ; === Menu tray === TrayCreateItem("Mostra") TrayItemSetOnEvent(-1, "RestoreGUI") TrayCreateItem("Esci") TrayItemSetOnEvent(-1, "TrayExit") TraySetClick(8) TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE, "RestoreGUI") ; === Processi da gestire === Global $aProcesses[5] = ["Alert_V4.exe", "TerminalGui_V4.exe", "Cocktpit_V4.exe", "MarketWatcH_BAR_V4.exe", "CopyTradeV4.exe"] ; === Lettura configurazione === Global $sCurrentLang = IniRead(@ScriptDir & "\Config.ini", "Language_Default", "Lang", "IT") Global $account = IniRead(@ScriptDir & "\Config.ini", "Modulo", "AccountMT5", "00000") Global $email = IniRead(@ScriptDir & "\Config.ini", "Modulo", "Email", "gino@latino.com") Global $app = "Starter_V3" ; === Variabili globali per le lingue === Global $aRighe, $sLangFile ; === GUI primaria (Settings) === Global $hGUI, $menuFile, $menuFileConfig, $menuMWConfig, $menuLang, $menuLangIT, $menuLangEN, $menuFileExit, $menuHelp, $menuHelpInfo Global $grpProcesses, $btnAlert, $btnCloseAlert, $btnTerminal, $btnCloseTerminal, $btnTest, $btnCloseTest, $btnMarketWatch, $btnCloseMarketWatch Global $btnTelegram, $btnCloseTelegram, $btnAll, $btnCloseAll ; === GUI secondaria (Settings) === Global $hSettingsGUI = 0, $bSettingsCreated = False, $idTab, $inpBR1, $inpBR2, $inpBR3, $inpBR4, $inpBR5, $inpBV1, $inpBV2, $inpBV3 Global $inpMT5T, $inpMT5Path, $inpAccount, $inpEmail, $inpBtnDxSX, $inpSetOnTop, $inpStMT5, $inpTotStart, $inpLang, $inpMarketWatchEdit Global $inpAlertX, $inpAlertY, $inpCockpitX, $inpCockpitY, $inpMWX, $inpMWY, $inpTermX, $inpTermY, $inpTgX, $inpTgY, $btnPopCorn Global $bSettingsOpen = False, $iLastTab = 0, $hBtnSave = 0, $hBtnCancel = 0, $inpBV4, $inpBV5 Global $sMutexName = "Metora_Manager_SingleInstance" If _Singleton($sMutexName, 1) = 0 Then MsgBox(48, "Metora Manager", "Il programma è già in esecuzione.") Exit EndIf _Lingua() _Main() Func _Main() $hGUI = GUICreate("Metora Manager", 300, 280, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MINIMIZEBOX), $WS_EX_TOPMOST) ; === Menu === $menuFile = GUICtrlCreateMenu("&" & $aRighe[0]) $menuFileConfig = GUICtrlCreateMenuItem($aRighe[2], $menuFile) ;$menuMWConfig = GUICtrlCreateMenuItem($aRighe[3], $menuFile) GUICtrlCreateMenuItem("", $menuFile) $menuLang = GUICtrlCreateMenu($aRighe[4], $menuFile) $menuLangIT = GUICtrlCreateMenuItem($aRighe[5], $menuLang) $menuLangEN = GUICtrlCreateMenuItem($aRighe[6], $menuLang) GUICtrlCreateMenuItem("", $menuFile) $menuFileExit = GUICtrlCreateMenuItem($aRighe[7], $menuFile) $menuHelp = GUICtrlCreateMenu("&" & $aRighe[8]) $menuHelpInfo = GUICtrlCreateMenuItem($aRighe[9], $menuHelp) If $sCurrentLang = "IT" Then GUICtrlSetState($menuLangIT, $GUI_CHECKED) Else GUICtrlSetState($menuLangEN, $GUI_CHECKED) EndIf ; === Gruppo processi === $grpProcesses = GUICtrlCreateGroup("Metora Prog.", 10, 10, 280, 200) $btnAlert = GuiFlatButton_Create("Alert", 20, 35, 90, 25) $btnCloseAlert = GuiFlatButton_Create("X", 120, 35, 30, 25) $btnTerminal = GuiFlatButton_Create("Terminal", 20, 70, 90, 25) $btnCloseTerminal = GuiFlatButton_Create("X", 120, 70, 30, 25) $btnTest = GuiFlatButton_Create("Cockpit", 20, 105, 90, 25) $btnCloseTest = GuiFlatButton_Create("X", 120, 105, 30, 25) $btnMarketWatch = GuiFlatButton_Create("MarketWatch", 20, 140, 90, 25) $btnCloseMarketWatch = GuiFlatButton_Create("X", 120, 140, 30, 25) $btnTelegram = GuiFlatButton_Create("Telegram", 20, 175, 90, 25) $btnCloseTelegram = GuiFlatButton_Create("X", 120, 175, 30, 25) GUICtrlCreateGroup("", 0, 0, 0, 0) ; === Pulsanti totali === $btnAll = GuiFlatButton_Create($aRighe[10], 20, 220, 110, 25) $btnCloseAll = GuiFlatButton_Create($aRighe[11], 160, 220, 110, 25) GuiFlatButton_SetColors($btnAll, 0x90EE90, 0x000000, 0x999999) GuiFlatButton_SetColors($btnCloseAll, 0xFF7F7F, 0x000000, 0x999999) GUISetState(@SW_SHOW, $hGUI) GUISetOnEvent($GUI_EVENT_CLOSE, _close) GUICtrlSetOnEvent($menuFileExit, _close) GUICtrlSetOnEvent($btnAll, _OpenAllApp) GUICtrlSetOnEvent($btnCloseAll, _ClossAllApp) GUICtrlSetOnEvent($btnAlert, _OpenAlert) GUICtrlSetOnEvent($btnCloseAlert, _CloseAlert) GUICtrlSetOnEvent($btnTerminal, _OpenTerminal) GUICtrlSetOnEvent($btnCloseTerminal, _CloseTerminal) GUICtrlSetOnEvent($btnTest, _OpenCockpit) GUICtrlSetOnEvent($btnCloseTest, _CloseCockpit) GUICtrlSetOnEvent($btnMarketWatch, _OpenMarketWatch) GUICtrlSetOnEvent($btnCloseMarketWatch, _CloseMarketWatch) GUICtrlSetOnEvent($btnTelegram, _OpenTelegram) GUICtrlSetOnEvent($btnCloseTelegram, _CloseTelegram) GUICtrlSetOnEvent($menuHelpInfo, _ShowInfo) GUICtrlSetOnEvent($menuLangIT, _Italian) GUICtrlSetOnEvent($menuLangEN, _English) GUICtrlSetOnEvent($menuFileConfig, _Configurazione) EndFunc ;==>_Main Func _Configurazione() OpenSettingsGUI(0) EndFunc ;==>_Configurazione Func OpenSettingsGUI($iStartTab = 0) If $bSettingsOpen Then ; Se già aperta, la mostriamo e attiviamo GUISetState(@SW_SHOW, $hSettingsGUI) WinActivate($hSettingsGUI) GUICtrlSendMsg($idTab, $TCM_SETCURSEL, $iStartTab, 0) $iLastTab = $iStartTab Return EndIf ; === Crea la GUI secondaria === $hSettingsGUI = GUICreate($aRighe[12], 530, 500, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_CAPTION, $WS_SYSMENU)) ; Tab control $idTab = GUICtrlCreateTab(10, 10, 510, 485) ; ################ TAB 0: Configurazione ################ GUICtrlCreateTabItem($aRighe[32]) GUICtrlCreateGroup($aRighe[13], 20, 40, 240, 120) $inpBR1 = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "BottoniRossi", "B1", "0.01"), 40, 65, 80, 20) $inpBR2 = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "BottoniRossi", "B2", "0.10"), 130, 65, 80, 20) $inpBR3 = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "BottoniRossi", "B3", "0.50"), 40, 95, 80, 20) $inpBR4 = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "BottoniRossi", "B4", "1"), 130, 95, 80, 20) $inpBR5 = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "BottoniRossi", "B5", "2"), 85, 125, 80, 20) GUICtrlCreateGroup("", 0, 0, 0, 0) GUICtrlCreateGroup($aRighe[14], 270, 40, 240, 120) $inpBV1 = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "BottoniVerdi", "B1", "2"), 290, 65, 80, 20) $inpBV2 = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "BottoniVerdi", "B2", "1"), 380, 65, 80, 20) $inpBV3 = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "BottoniVerdi", "B3", "0.50"), 290, 95, 80, 20) $inpBV4 = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "BottoniVerdi", "B4", "0.10"), 380, 95, 80, 20) $inpBV5 = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "BottoniVerdi", "B5", "0.01"), 335, 125, 80, 20) GUICtrlCreateGroup("", 0, 0, 0, 0) GUICtrlCreateGroup($aRighe[17], 270, 170, 240, 70) $inpMT5T = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "MT5_Title", "MT5T", ""), 280, 195, 220, 20) GUICtrlCreateGroup("", 0, 0, 0, 0) GUICtrlCreateGroup($aRighe[18], 20, 250, 490, 50) $inpMT5Path = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "MT5_path_exchange", "MT5Pth", ""), 30, 275, 460, 20) GUICtrlCreateGroup("", 0, 0, 0, 0) GUICtrlCreateGroup($aRighe[19], 20, 310, 240, 75) GUICtrlCreateLabel($aRighe[20], 30, 335, 100, 20) $inpAccount = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "Modulo", "AccountMT5", ""), 130, 335, 100, 20) GUICtrlCreateLabel($aRighe[21], 30, 360, 80, 20) $inpEmail = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "Modulo", "Email", ""), 110, 360, 120, 20) GUICtrlCreateGroup("", 0, 0, 0, 0) GUICtrlCreateGroup($aRighe[22], 270, 310, 240, 75) GUICtrlCreateLabel($aRighe[23], 280, 335, 120, 20) $inpBtnDxSX = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "Terminal_Gui", "BtnDxSX", "DX"), 400, 335, 40, 20) GUICtrlCreateLabel($aRighe[24], 280, 360, 140, 20) $inpSetOnTop = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "Terminal_Gui", "SetOnTop", "1"), 420, 360, 30, 20) GUICtrlCreateGroup("", 0, 0, 0, 0) $btnPopCorn = GUICtrlCreateButton("Avvia PopCorn", 20, 170, 130, 30) GUICtrlSetOnEvent(-1, "_LaunchPopCorn") GUICtrlCreateGroup($aRighe[25], 20, 390, 240, 70) GUICtrlCreateLabel($aRighe[26], 30, 410, 120, 20) $inpStMT5 = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "StyleMT5", "StMT5", "System"), 150, 410, 80, 20) GUICtrlCreateLabel($aRighe[27], 30, 435, 140, 20) $inpTotStart = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "totale_conto", "TotStartAccount", "10000"), 170, 435, 80, 20) GUICtrlCreateGroup("", 0, 0, 0, 0) GUICtrlCreateGroup($aRighe[28], 270, 390, 240, 70) GUICtrlCreateLabel($aRighe[29], 280, 415, 120, 20) $inpLang = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "Language_Default", "Lang", "IT"), 400, 415, 40, 20) GUICtrlCreateGroup("", 0, 0, 0, 0) ; ################ TAB 1: MarketWatchConfig ################ GUICtrlCreateTabItem($aRighe[33]) Local $sLabelMarketWatch = "Modifica elenco strumenti per il MarketWatch." & @CRLF & _ "Ogni riga deve essere nel formato: ButtonN=Simbolo,CodiceColoreEsadecimale" & @CRLF & _ "Count se diminuisci o aumenti il numero di bottoni lo devi aggiornare e lascia un bottone a fine " & @CRLF & _ "chiamato exit, dandogli ovviamente l'ultimo posto. !! [Buttons] non toccarlo !!" If $sCurrentLang <> "IT" Then $sLabelMarketWatch = "Edit MarketWatch instrument list." & @CRLF & _ "Each line must be in format: ButtonN=Symbol,HexColor" & @CRLF & _ "If you change the number of buttons, update Count and keep an EXIT button at the end." & @CRLF & _ "!! Do not modify [Buttons] !!" EndIf GUICtrlCreateLabel($sLabelMarketWatch, 20, 50, 480, 60) Local $sMarketWatchFile = @ScriptDir & "\MarketWatchConfig.ini" Local $sLoadedContent = "[Buttons]" & @CRLF & "Count=32" & @CRLF & _ "Button1=XAUUSD,FFD700" & @CRLF & "Button2=XAGUSD,FFD700" & @CRLF & _ "Button3=XTIUSD,00FFFF" & @CRLF & "Button4=EURUSD,90EE90" & @CRLF & _ "Button5=GBPUSD,90EE90" & @CRLF & "Button6=USDJPY,90EE90" & @CRLF & _ "Button7=#GDAXIm,FFB6C1" & @CRLF & "Button8=#NDXm,FFB6C1" & @CRLF & _ "Button9=#SPXm,F0F0F0" & @CRLF & "Button10=#WS30m,F0F0F0" & @CRLF & _ "Button11=#ESX50,F0F0F0" & @CRLF & "Button12=#UK100,F0F0F0" & @CRLF & _ "Button13=DXY,F0F0F0" & @CRLF & "Button14=NZDUSD,F0F0F0" & @CRLF & _ "Button15=NZDAUD,F0F0F0" & @CRLF & "Button16=NZDJPY,F0F0F0" & @CRLF & _ "Button17=NZDCAD,F0F0F0" & @CRLF & "Button18=GBPNZD,F0F0F0" & @CRLF & _ "Button19=GBPJPY,F0F0F0" & @CRLF & "Button20=GBPCAD,F0F0F0" & @CRLF & _ "Button21=GBPAUD,F0F0F0" & @CRLF & "Button22=GBPEUR,F0F0F0" & @CRLF & _ "Button23=EURNZD,F0F0F0" & @CRLF & "Button24=EURCAD,F0F0F0" & @CRLF & _ "Button25=EURAUD,F0F0F0" & @CRLF & "Button26=EURJPY,F0F0F0" & @CRLF & _ "Button27=USDCHF,F0F0F0" & @CRLF & "Button28=USDCAD,F0F0F0" & @CRLF & _ "Button29=BTCUSD,F0F0F0" & @CRLF & "Button30=ETHUSD,F0F0F0" & @CRLF & _ "Button31=XNGUSD,F0F0F0" & @CRLF & "Button32=EXIT,FF0000" If FileExists($sMarketWatchFile) Then Local $content = FileRead($sMarketWatchFile) If StringStripWS($content, 3) <> "" Then $sLoadedContent = $content EndIf $inpMarketWatchEdit = GUICtrlCreateEdit($sLoadedContent, 20, 120, 480, 300, BitOR($ES_AUTOVSCROLL, $WS_VSCROLL, $ES_WANTRETURN)) ; ################ TAB 2: Posizioni GUI ################ GUICtrlCreateTabItem($aRighe[39]) GUICtrlCreateLabel($aRighe[40], 20, 39, 480, 20) GUICtrlCreateGroup("Alert", 20, 60, 240, 70) GUICtrlCreateLabel("OffsetX:", 30, 85, 60, 20) $inpAlertX = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "Alert_GUI_Position", "OffsetX", "0"), 90, 85, 50, 20) GUICtrlCreateLabel("OffsetY:", 150, 85, 60, 20) $inpAlertY = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "Alert_GUI_Position", "OffsetY", "0"), 210, 85, 50, 20) GUICtrlCreateGroup("", 0, 0, 0, 0) GUICtrlCreateGroup("Cockpit", 270, 60, 240, 70) GUICtrlCreateLabel("OffsetX:", 280, 85, 60, 20) $inpCockpitX = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "Cocktpit_GUI_Position", "OffsetX", "0"), 340, 85, 50, 20) GUICtrlCreateLabel("OffsetY:", 400, 85, 60, 20) $inpCockpitY = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "Cocktpit_GUI_Position", "OffsetY", "0"), 460, 85, 50, 20) GUICtrlCreateGroup("", 0, 0, 0, 0) GUICtrlCreateGroup("MarketWatch", 20, 140, 240, 70) GUICtrlCreateLabel("OffsetX:", 30, 165, 60, 20) $inpMWX = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "MarketWatch_GUI_Position", "OffsetX", "373"), 90, 165, 50, 20) GUICtrlCreateLabel("OffsetY:", 150, 165, 60, 20) $inpMWY = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "MarketWatch_GUI_Position", "OffsetY", "23"), 210, 165, 50, 20) GUICtrlCreateGroup("", 0, 0, 0, 0) GUICtrlCreateGroup("Terminal", 270, 140, 240, 70) GUICtrlCreateLabel("OffsetX:", 280, 165, 60, 20) $inpTermX = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "Terminal_GUI_Position", "OffsetX", "0"), 340, 165, 50, 20) GUICtrlCreateLabel("OffsetY:", 400, 165, 60, 20) $inpTermY = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "Terminal_GUI_Position", "OffsetY", "0"), 460, 165, 50, 20) GUICtrlCreateGroup("", 0, 0, 0, 0) GUICtrlCreateGroup("Telegram", 20, 220, 240, 70) GUICtrlCreateLabel("OffsetX:", 30, 245, 60, 20) $inpTgX = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "Telegram_GUI_Position", "OffsetX", "9"), 90, 245, 50, 20) GUICtrlCreateLabel("OffsetY:", 150, 245, 60, 20) $inpTgY = GUICtrlCreateInput(IniRead(@ScriptDir & "\Config.ini", "Telegram_GUI_Position", "OffsetY", "320"), 210, 245, 50, 20) GUICtrlCreateGroup("", 0, 0, 0, 0) GUICtrlCreateTabItem("") ; Chiude il tab ; Crea pulsanti Salva/Annulla $hBtnSave = GUICtrlCreateButton($aRighe[30], 150, 465, 90, 21) GUICtrlSetOnEvent(-1, "_SaveSettings") $hBtnCancel = GUICtrlCreateButton($aRighe[31], 280, 465, 90, 21) GUICtrlSetOnEvent(-1, "_CloseSettingsGUI") ; Imposta il tab iniziale GUICtrlSendMsg($idTab, $TCM_SETCURSEL, $iStartTab, 0) $iLastTab = $iStartTab GUISetOnEvent($GUI_EVENT_CLOSE, "_CloseSettingsGUI", $hSettingsGUI) GUISetState(@SW_SHOW, $hSettingsGUI) $bSettingsOpen = True EndFunc ;==>OpenSettingsGUI Func _CloseSettingsGUI() GUIDelete($hSettingsGUI) $hSettingsGUI = 0 $bSettingsOpen = False EndFunc ;==>_CloseSettingsGUI Func _LaunchPopCorn() Local $sPopCornPath = @ScriptDir & "\PopCorn.exe" If FileExists($sPopCornPath) Then Run($sPopCornPath) Else MsgBox(16, "Errore", "PopCorn.exe non trovato in:" & @CRLF & $sPopCornPath) EndIf EndFunc ;==>_LaunchPopCorn Func _SaveSettings() ; <<< CORREZIONE CRUCIALE PER OnEventMode CON GUI FIGLIA >>> GUISwitch($hSettingsGUI) Local $sConfig = @ScriptDir & "\Config.ini" Local $sMarketWatchFile = @ScriptDir & "\MarketWatchConfig.ini" Switch $iLastTab Case 0 ; Configurazione IniWrite($sConfig, "BottoniRossi", "B1", GUICtrlRead($inpBR1)) IniWrite($sConfig, "BottoniRossi", "B2", GUICtrlRead($inpBR2)) IniWrite($sConfig, "BottoniRossi", "B3", GUICtrlRead($inpBR3)) IniWrite($sConfig, "BottoniRossi", "B4", GUICtrlRead($inpBR4)) IniWrite($sConfig, "BottoniRossi", "B5", GUICtrlRead($inpBR5)) IniWrite($sConfig, "BottoniVerdi", "B1", GUICtrlRead($inpBV1)) IniWrite($sConfig, "BottoniVerdi", "B2", GUICtrlRead($inpBV2)) IniWrite($sConfig, "BottoniVerdi", "B3", GUICtrlRead($inpBV3)) IniWrite($sConfig, "BottoniVerdi", "B4", GUICtrlRead($inpBV4)) IniWrite($sConfig, "BottoniVerdi", "B5", GUICtrlRead($inpBV5)) IniWrite($sConfig, "MT5_Title", "MT5T", GUICtrlRead($inpMT5T)) IniWrite($sConfig, "MT5_path_exchange", "MT5Pth", GUICtrlRead($inpMT5Path)) IniWrite($sConfig, "Modulo", "AccountMT5", GUICtrlRead($inpAccount)) IniWrite($sConfig, "Modulo", "Email", GUICtrlRead($inpEmail)) IniWrite($sConfig, "Terminal_Gui", "BtnDxSX", GUICtrlRead($inpBtnDxSX)) IniWrite($sConfig, "Terminal_Gui", "SetOnTop", GUICtrlRead($inpSetOnTop)) IniWrite($sConfig, "StyleMT5", "StMT5", GUICtrlRead($inpStMT5)) IniWrite($sConfig, "totale_conto", "TotStartAccount", GUICtrlRead($inpTotStart)) IniWrite($sConfig, "Language_Default", "Lang", GUICtrlRead($inpLang)) MsgBox(64, $aRighe[35], $aRighe[35], 2) Case 1 ; MarketWatch Local $hFile = FileOpen($sMarketWatchFile, 2) If $hFile = -1 Then MsgBox(16, $aRighe[37], "Impossibile aprire il file per la scrittura:" & @CRLF & $sMarketWatchFile) Else FileWrite($hFile, GUICtrlRead($inpMarketWatchEdit)) FileClose($hFile) MsgBox(64, $aRighe[36], $aRighe[36], 2) EndIf Case 2 ; Posizioni GUI IniWrite($sConfig, "Alert_GUI_Position", "OffsetX", GUICtrlRead($inpAlertX)) IniWrite($sConfig, "Alert_GUI_Position", "OffsetY", GUICtrlRead($inpAlertY)) IniWrite($sConfig, "Cocktpit_GUI_Position", "OffsetX", GUICtrlRead($inpCockpitX)) IniWrite($sConfig, "Cocktpit_GUI_Position", "OffsetY", GUICtrlRead($inpCockpitY)) IniWrite($sConfig, "MarketWatch_GUI_Position", "OffsetX", GUICtrlRead($inpMWX)) IniWrite($sConfig, "MarketWatch_GUI_Position", "OffsetY", GUICtrlRead($inpMWY)) IniWrite($sConfig, "Terminal_GUI_Position", "OffsetX", GUICtrlRead($inpTermX)) IniWrite($sConfig, "Terminal_GUI_Position", "OffsetY", GUICtrlRead($inpTermY)) IniWrite($sConfig, "Telegram_GUI_Position", "OffsetX", GUICtrlRead($inpTgX)) IniWrite($sConfig, "Telegram_GUI_Position", "OffsetY", GUICtrlRead($inpTgY)) MsgBox(64, "OK", "Posizioni salvate.") EndSwitch EndFunc Func _Italian() GUICtrlSetState($menuLangIT, $GUI_CHECKED) GUICtrlSetState($menuLangEN, $GUI_UNCHECKED) IniWrite(@ScriptDir & "\Config.ini", "Language_Default", "Lang", "IT") MsgBox(64, "Info", "Riavvia il programma per rendere effettive le modifiche", 2) EndFunc ;==>_Italian Func _English() GUICtrlSetState($menuLangIT, $GUI_UNCHECKED) GUICtrlSetState($menuLangEN, $GUI_CHECKED) IniWrite(@ScriptDir & "\Config.ini", "Language_Default", "Lang", "EN") MsgBox(64, "Info", "Restart the program to apply the changes.", 2) EndFunc ;==>_English Func _OpenTerminal() RunSingleProcess($aProcesses[1]) EndFunc ;==>_OpenTerminal Func _CloseTerminal() CloseProcessIfRunning($aProcesses[1]) EndFunc ;==>_CloseTerminal Func _OpenCockpit() RunSingleProcess($aProcesses[2]) EndFunc ;==>_OpenCockpit Func _CloseCockpit() CloseProcessIfRunning($aProcesses[2]) EndFunc ;==>_CloseCockpit Func _OpenMarketWatch() RunSingleProcess($aProcesses[3]) EndFunc ;==>_OpenMarketWatch Func _CloseMarketWatch() CloseProcessIfRunning($aProcesses[3]) EndFunc ;==>_CloseMarketWatch Func _OpenTelegram() RunSingleProcess($aProcesses[4]) EndFunc ;==>_OpenTelegram Func _CloseTelegram() CloseProcessIfRunning($aProcesses[4]) EndFunc ;==>_CloseTelegram Func _OpenAlert() RunSingleProcess($aProcesses[0]) EndFunc ;==>_OpenAlert Func _CloseAlert() CloseProcessIfRunning($aProcesses[0]) EndFunc ;==>_CloseAlert Func _ClossAllApp() For $i = 0 To UBound($aProcesses) - 1 CloseProcessIfRunning($aProcesses[$i]) Next EndFunc ;==>_ClossAllApp Func _OpenAllApp() For $i = 0 To UBound($aProcesses) - 1 RunSingleProcess($aProcesses[$i]) Next EndFunc ;==>_OpenAllApp Func RunSingleProcess($exeName) CloseProcessIfRunning($exeName) Sleep(300) RunProcess($exeName) EndFunc ;==>RunSingleProcess Func CloseProcessIfRunning($processName) Local $pid = ProcessExists($processName) If $pid Then ProcessClose($pid) Local $timeout = 5000, $t0 = TimerInit() While ProcessExists($processName) Sleep(100) If TimerDiff($t0) > $timeout Then ExitLoop WEnd EndIf EndFunc ;==>CloseProcessIfRunning Func RunProcess($exeName) Local $fullPath = @ScriptDir & "\" & $exeName If FileExists($fullPath) Then Run($fullPath) Else MsgBox($MB_ICONERROR, "Errore", "File non trovato: " & $fullPath) EndIf EndFunc ;==>RunProcess ; === Funzioni tray === Func RestoreGUI() GUISetState(@SW_SHOW, $hGUI) WinActivate($hGUI) WinSetOnTop($hGUI, "", $WINDOWS_ONTOP) EndFunc ;==>RestoreGUI Func TrayExit() Exit EndFunc ;==>TrayExit Func _ShowInfo() MsgBox($MB_ICONINFORMATION, "Informazioni", _ "Metora Manager v1.0" & @CRLF & _ "Autore: La Capra Software" & @CRLF & _ "Data: " & @YEAR & "-" & @MON & "-" & @MDAY & @CRLF & _ "Gestisce l'avvio e la chiusura di più programmi.") EndFunc ;==>_ShowInfo ; === Carica file di lingua PRIMA di creare la GUI === Func _Lingua() If $sCurrentLang = "IT" Then $sLangFile = @ScriptDir & "\Language\italiano.lang" Else $sLangFile = @ScriptDir & "\Language\english.lang" EndIf $aRighe = FileReadToArray($sLangFile) If @error Then MsgBox(16, "Errore", "Impossibile leggere il file: " & $sLangFile) Exit EndIf EndFunc ;==>_Lingua Func _close() If $bSettingsOpen Then GUIDelete($hSettingsGUI) EndIf Exit EndFunc ;==>_close While 1 Sleep(100) WEnd and this ini file Config.ini expandcollapse popup#imposta le size dei bottoni SELL [BottoniRossi] B1=0.01 B2=0.10 B3=0.50 B4=1 B5=2 #imposta le size dei bottoni BUY [BottoniVerdi] B1=2 B2=1 B3=0.50 B4=0.10 B5=0.01 #lotto di default per uso solito copy [LottoCopy] Lott=0.02 #inposta in cockpit quando non ha selezionato nessun strumento su MT5 il testo INFO [Generale] DisplayTesto=INFO #imposta il titolo della metatrader per agganciarsi [MT5_Title] MT5T=00000 - FOnEU-MT5: Demo Account - #imposta il path File della metatrader [MT5_path_exchange] MT5Pth=C:\Users\pct\AppData\Roaming\MetaQuotes\Terminal\48F1F8FF95D90CF36D8ECBFF7D759FB9\MQL5\Files #imposta la lingua o italiano o inglese [Language_Default] Lang=IT #Account e email per la licenza online [Modulo] AccountMT5=0000000 Email=gino@latino.com ;BtnDxSX=DX Imposta i bottoni delle trade aperte su Terminal, o tutto a destra o tutto a sinistra ;SetOnTpo=1 con 1 la barra e' sempre in primo piano [Terminal_Gui] BtnDxSX=DX SetOnTop=1 #Questo serve per cambiare lo stile e renderlo accorato con la MT5 #- StMT5 può essere "System" o "Dark" #- Non modificare se non sai cosa fai [StyleMT5] StMT5=System #il totale che hai quando parti con il conto [totale_conto] TotStartAccount=10000 #posizione di Alert X Y sullo schermo e lunghezza della barra [Alert_GUI_Position] OffsetX=0 OffsetY=0 Width=1761 #posizione di Cocktpit X Y sullo schermo e lunghezza della barra [Cocktpit_GUI_Position] OffsetX=130 OffsetY=55 ;posizione di MarketWatch X Y sullo schermo e lunghezza della barra [MarketWatch_GUI_Position] OffsetX=373 OffsetY=23 ;posizione di Terminal X Y sullo schermo e lunghezza della barra [Terminal_GUI_Position] OffsetX=0 OffsetY=0 ;posizione di Telegram X Y sullo schermo e lunghezza della barra [Telegram_GUI_Position] OffsetX=9 OffsetY=320 but when i open File ---> configurazione , and modify somthing , when i click save non save nothing and insert a newline in footer of ini file o_O (for test create a folder language and insert Italian.lang) wiht this expandcollapse popupFile Aiuto Configurazione MarketWatchConfig Lingua IT EN Esci Aiuto Informazioni Lancia Tutti Chiudi Tutto Configurazione Metora Bottoni Rossi (SELL) Bottoni Verdi (BUY) Generale Testo predefinito (INFO): Titolo MetaTrader 5 Percorso cartella Files MT5 Licenza Account MT5: Email: Terminal GUI Posizione bottoni: Sempre in primo piano: Stile & $ Conto Stile interfaccia: Totale conto iniziale: Lingua Lingua (IT / EN): Salva Annulla Configurazione MarketWatchConfig Modifica elenco strumenti per il MarketWatch.<br>"Ogni riga deve essere nel formato: ButtonN=Simbolo Configurazione principale aggiornata con successo. MarketWatchConfig.ini aggiornato con successo. Errore Impossibile salvare il file MarketWatchConfig.ini. Posizioni GUI Imposta le coordinate X/Y di ogni modulo.
Nine Posted 7 hours ago Posted 7 hours ago Are you serious ? You want us to debug your code ? Listen, you need to add in your skills the ability to follow your code and check where your problem is located. If you cannot find a solution, then reduce to a few lines of code the exact issue, and then we will help you. “They did not know it was impossible, so they did it” ― Mark Twain Spoiler Block all input without UAC Save/Retrieve Images to/from Text Monitor Management (VCP commands) Tool to search in text (au3) files Date Range Picker Virtual Desktop Manager Sudoku Game 2020 Overlapped Named Pipe IPC HotString 2.0 - Hot keys with string x64 Bitwise Operations Multi-keyboards HotKeySet Recursive Array Display Fast and simple WCD IPC Multiple Folders Selector Printer Manager GIF Animation (cached) Debug Messages Monitor UDF Screen Scraping Round Corner GUI UDF Multi-Threading Made Easy Interface Object based on Tag
argumentum Posted 6 hours ago Posted 6 hours ago 2 hours ago, MoriceGrene said: ... Case 1 ; MarketWatch Local $hFile = FileOpen($sMarketWatchFile, 2) If $hFile = -1 Then MsgBox(16, $aRighe[37], "Impossibile aprire il file per la scrittura:" & @CRLF & $sMarketWatchFile) Else consolewrite(GUICtrlRead($inpMarketWatchEdit) & @crlf) ; <<<< maybe it's empty ? FileWrite($hFile, GUICtrlRead($inpMarketWatchEdit)) FileClose($hFile) MsgBox(64, $aRighe[36], $aRighe[36], 2) EndIf ... ..like @Nine said, try to zoom into the aspect of the code with the problem. If you want us to look at something, provide simple running code, to run and debug. And keep in mind that we don't have anything to look into MT5 stuff. Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now