Jump to content

Recommended Posts

Posted

Hi uys i have this code  

#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

#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 

File
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.

 

Posted

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.

Posted
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.
autoit_scripter_blue_userbar.png

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...