Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Ho trovato una finestra interessante. È quasi impossibile prenderci qualcosa. La finestra si chiama "Salva con nome". Puoi dirmi come premere il pulsante "Salva"?
Se si seleziona specificamente il pulsante di salvataggio, si ha il codice del pulsante 00000001
Ma non succede niente quando lo si chiama con questo codice. Cos'è questa finestra senza nome?
Questa è una finestra di dialogo a comparsa. Il suo descrittore di sistema può essere ottenuto utilizzando la funzione WinAPI GetLastActivePopup(int hWnd).
Ecco un esempio di come usare questa funzione:
Le caselle di controllo possono essere spuntate programmaticamente se non sono presenti.
Quali funzioni Win API sono usate per fare questo?
Trovata una funzione nella WinAPI:
Funzione CheckDlgButton
Descrizione:funzione CheckDlgButton(Dlg: HWnd; IDButton: Integer; Check: Word);
Contrassegna o designa un controllo a pulsanti o cambia lo stato di un controllo a tre pulsanti.
Parametri:Dlg: la finestra di dialogo che contiene il pulsante.
IDButton: il controllo modificabile del pulsante.
Controlli: cancellato(0), segnato(1), ombreggiato(2).
Prima di eseguirlo quale funzione per controllare lo stato del pulsante. Nel mio caso è nella casella di controllo.
in continuazione del tema API
quando si salva - se questo accade di nuovo la domanda sorgerà!
salva come
( file esiste sostituire )
premere automaticamente SI
Trovata una funzione nella WinAPI:
Funzione CheckDlgButton
Descrizione:funzione CheckDlgButton(Dlg: HWnd; IDButton: Integer; Check: Word);
Etichetta o deseleziona un controllo a pulsanti o cambia lo stato di un controllo a tre pulsanti.
Parametri:Dlg: La finestra di dialogo che contiene il pulsante.
IDButton: il controllo modificabile del pulsante.
Controllato: cancellato(0), segnato(1), ombreggiato(2).
Prima di eseguirlo quale funzione usare per controllare lo stato del pulsante. Nel mio caso in checkbox.
Potete usare la funzione IsDlgButtonChecked per determinare lo stato attuale dell'interruttore:
Questa funzione restituisce lo stato dell'interruttore con idButton situato nella finestra di dialogo hdlg. Se l'interruttore è in uno stato disabilitato, viene restituito un valore nullo. Un valore di 1 viene restituito per un interruttore che è acceso. Un valore di 2 corrisponde a un interruttore inattivo, mostrato in grigio. In caso di errore, viene restituito un valore negativo di -1.
---
Un esempio di come funziona IsDlgButtonChecked può essere visto qui
http://frolov-lib.ru/books/bsp/v12/ch3_2.htm
Ho deciso di tornare al tema dello studio di WinAPI.
Sto cercando di usare Microsoft Spy++ v.9.00.21022 per trovare l'identificatore della casella di controllo "Ottimizzazione" per controllare se è spuntata o no.
Faccio il seguente passo per passo.
1. Terminale avviato.
2. ha aperto la finestra del tester.
3. In Spy++ ho cercato una finestra e ho indicato l'elemento "Optimize".
Ho cliccato sul pulsante OK.
4. Scorrere le schede della prossima finestra
Non riesco a capire dove sia il mio codice per questo pulsante.
Ilnur ,YuraZ e altri mi insegnano a identificare questo codice descrittore di cui ho bisogno.
Perché chiedo di insegnarvi, non di indicare specificamente i codici, perché voglio imparare a identificare altri elementi. Anche se se si specifica può essere più facile per me trovarli dopo, sapendo cosa cercare e dove cercare....
Qui ho dato un esempio di codice su come trovare l'identificatore del pulsante "Start".
La stessa figura mostra come trovare l'identificatore del controllo.
Tutti i controlli situati nella finestra del tester di strategia sono definiti allo stesso modo.
Per esempio, secondo l'immagine qui sopra, l'identificatore della casella di controllo "Ottimizzazione" (scheda Generale) è 0x405.
Ho risolto il problema. L'unica cosa che non riesco a trovare i codici di 2 pulsanti - data per i test e ottimizzazione da "Data" a "Data". Uscite del programma 00000001. Ilnur mi dice i codici di questi pulsanti.
Sì, infatti, gli identificatori di questi articoli sono gli stessi. Pertanto, non possiamo usare GetDlgItem() in questo caso.
Questo lascia la possibilità di identificarli usando FindWindowExA(). Tuttavia, la questione principale è se abbiamo bisogno di identificarli.
Non è possibile gestire questi elementi, cioè specificare il periodo di ottimizzazione o di test, per mezzo della WinAPI in MQL.
Anche se potrei sbagliarmi.
Sì, infatti, gli identificatori di questi articoli sono gli stessi. Pertanto, non possiamo usare GetDlgItem() in questo caso.
Questo lascia la possibilità di identificarli usando FindWindowExA(). Tuttavia, la questione principale è se abbiamo bisogno di identificarli.
Manca la possibilità di gestire questi elementi, cioè di specificare l'ottimizzazione o il periodo di prova, per mezzo della WinAPI in MQL.
Potrei sbagliarmi, però.
trovare un elemento con ID - 0x0577 (cliccare sul pulsante Change Expert)
e clicchiamo su NextWindow 3 volte solo per entrare nel campo From date: poi proviamo NextWindow altre due volte e entreremo nel campo To date:
in entrambi i casi basta riempire i campi delle date
SetWindowTextA( hwndEditDATEbeg, sDateBeg);
SendMessageA(hwndEditDATEbeg, EN_UPDATE, _ID_EDIT_HEX_DATEbeg, 0);
SendMessageA(hwndEditDATEbeg, EN_CHANGE, _ID_EDIT_HEX_DATEbeg, 0);
..
In MSQL5 mi piacerebbe molto avere uno strumento integrato per la comunicazione con il tester...