Aplikacja do wysyłania alertów e-mailem? - Strona 3
Strona 3 z 4 PierwszyPierwszy 1234 OstatniOstatni
Pokaż wyniki od 21 do 30 z 34

Wątek: Aplikacja do wysyłania alertów e-mailem?

  1. #21

  2. #22
    DOBRZE. Utknąłem
    Nie mogę do końca życia zrozumieć, jak przejrzeć listę nazw plików. Oto moja pętla Wstawiony kod $ sFileOld = $ a_files; tablica nazw plików w katalogu kończącym się * .gif Local $ iMax Local $ data = $ sFileOld; Ciąg w danych zostanie podzielony na tablicę wszędzie | napotkano Local $ arr = StringSplit ($ data, If IsArray ($ arr) Następnie $ iMax = UBound ($ arr); pobierz tablicę For $ i = 0 do $ iMax - 1; odejmij 1 rozmiar formularza, aby uniknąć błędu poza granicami $ sFileRenamed = SentalreadyMAILED_ $ arr FileMove ($ arr, $ sFileRenamed, 9); argumentami są FileMove (source, destination, flag (9 to check dla katalogu dest, jeśli go nie tworzy)) Next End Jeśli wiem, że dane znajdują się w tablicy, ponieważ pliki rzeczywiście są wysyłane pocztą elektroniczną. Ale z jakiegoś powodu nie pozwala mi używać tej samej tablicy do przenoszenia plików Czy powinienem wstawić [$ i] na końcu argumentów wewnątrz pętli, aby oddzielić poszczególne elementy tablicy? Próbowałem, ale bezskutecznie. mój mózg boli. EDIT: OK, dostałem to. Wypróbowałem inną pętlę i wszystko jest teraz dobre. Co za giętarka mózgu! Prawie tam Wstawiony kod $ FileList = $ a_files Jeśli @error = 1 Następnie MsgBox (0,, No Files \ Folders Found.) Zakończ EndIf Dla $ i = 1 Do $ FileList # 91; 0 # 93; $ sFileRenamed = \ SentItems \ MAILED_ $ FileList # 91; $ i # 93; FileMove ($ FileList # 91; $ i # 93 ;, $ sFileRenamed, 9) Dalej

  3. #23
    OK, więc mam to działa. Prawie. Plik skryptuINI spełnia swoją rolę doskonale. Mam plik ini, którego można użyć do wszystkich ustawień, w tym do katalogu docelowego, który ma zostać przesłany pocztą. Działa to dobrze, gdy uruchomię kompilator exe lub skrypt bezpośrednio, jednak kiedy wywołuję exe z polecenia ShellExecuteA w pliku alerter.mql, uruchamia on program mailer.exe, ale daje błędy, mówiąc, że potrzebuję co najmniej jednego odbiorcy poczty. To sprawia, że ​​myślę, że nie znajduje pliku INI i dlatego nie jest w stanie wysłać e-maila. Mam plik INI w tym samym katalogu, co plik wykonywalny. Podczas korzystania z funkcji ShellExecuteA z powłoki shell32.dll w indeksu MQL4 istnieje specjalna ścieżka lub argument, który muszę podać, aby powiedzieć, gdzie znajduje się plik INI? Myślę, że to może być problem. Ktoś ma jakieś pomysły?

  4. #24
    1 Załącznik (y) Na wszelki wypadek, jeśli ktoś nadal troszczy się - mam coś, co działa
    i jest to punkt, w którym chcę się podzielić krytyką. Załączony jest plik zip zawierający: Alerter.mql - MT4 indior, który wykonuje alarm i zapisuje zrzut ekranu (nie mój kod, ale dostosowany z innego indioru o tej samej nazwie) MT4-Mailer.au3 - skrypt AutoIT, który przesyła zrzuty ekranu i zapisuje do kolejnej wersji MT4-Mailer.exe - wersja wykonywalna dla Windowsa powyżej nie powinnaś instalować środowiska autoIT na swoim komputerze Alerter_Mail.INI - plik INI z ustawieniami pozwalającymi ci wprowadzić własne dane e-mail - wszystko dość zrozumiałe Użycie: zainstaluj Alerter.mql w katalogu twoich ekspertów, tak jak w normalnym trybie, który chcesz zmodyfikować, klikając prawym przyciskiem myszy w oknie ”Custom Indior” i wybierając ”Modyfikuj” dwie linie kodu, które chcesz zmienić, : Wstawiony kod/---- wykonaj WindowScreenShot i zapisz go do pliku WindowScreenShot (strzały \ Screenshot Symbol () _ Oferta .png, 1920,1080); ShellExecuteA (0, Open, c: Program Files # 91; YourMT4Install # 93; expertsfilesMT4-AlertMailer.exe,,, 1); Funkcja WindowScreenShot domyślnie zapisuje plik w folderach, które znajdują się w twoim folderze [MT4Install] expertsfiles. Jeśli chcesz zmienić nazwę tego folderu (tylko folder zdjęć), tutaj to zrobisz (ale zanotuj, jeśli to zrobisz) Polecenie ShellExecute wywołuje zewnętrzny program, aby faktycznie dołączyć ten zrzut ekranu i pocztę to do Ciebie. Zmień część [YourMT4Install] ścieżki, aby pasowała do MT4Install. UWAGA: Zawarłem zarówno plik .exe, jak i plik skryptu .au3. EITHER może być tutaj użyty - tzn. Jeśli nie ufasz uruchomieniu jakiegoś .exe, którego nie znasz, to możesz uruchomić skrypt zamiast ............... ale będziesz musiał zainstalować
    http://www.autoitscript.comtakże środowisko. Jest bardzo lekki, a jeśli jesteś majsterkowiczem, to czemu nie, ponieważ będziesz w stanie zmienić niektóre poręcze w tym środowisku. AutoIT to język skryptowy, który został pierwotnie zaprojektowany do zautomatyzowania programówfunkcji Windows, ale jest także dość wszechstronny. Aby uruchomić skrypt zamiast pliku .exe, powyższa linia ShellExecute będzie musiała zostać zmieniona na: Wstawiony kod ShellExecuteA (0, Run, c: Program Files # 91; YourMT4Install # 93; expertsfilesMT4-AlertMailer.au3,,, 1); gdzie zamiast OPEN używamy RUN, a rozszerzenie staje się .au3. OK, więc gdy to zrobisz, masz plik Alerter, który działa w ten sposób: Każda pozioma linia, prostokąt lub linia trendu może być używana jako poziom alertu. po prostu edytuj opis obiektów i ustaw go w następujący sposób: Alert_10, który ostrzeże Cię, gdy cena ofertowa wynosi 1 pipsa od tego obiektu, np. Alert_20 wyświetli powiadomienie o 2 pipsach itp. Pierwotny alert wyświetliłby komunikat z dźwiękiem wyskakującym z wiadomością e-mail alert informujący o poziomie ceny i nazwie obiektu, która miała zastosowanie. Nadal można to zostawić, ale teraz pojawiają się również poniższe. W momencie ostrzeżenia plik Alerter.Mql również wykona zrzut ekranu w rozdzielczości określonej w funkcji ”WindowScreenShot”. Bieżącą wartością domyślną jest 1920x1080 - zmień ją na dowolną. typ pliku to PNG, ale jeśli wolisz GIF, możesz po prostu zmienić rozszerzenie pliku w funkcji WindowScreenShot. Konwencja nazw plików to Screenshot [CurrencyPair] [BidPrice] .PNG Jeśli chcesz mieć majsterkowanie (prawdopodobnie), to poczuj się swobodnie. Ten plik zostanie zapisany w folderze [yourMT4Install] expertfilesshots. następnie MT4-AlertMailer zostaje wywołany. Program MT4-AlertMailer.exe lub .au3 korzystają z pliku Alert_Mailer.INI, aby uzyskać ustawienia konta pocztowego SMTP, katalogów, w których przechowywane są zrzuty ekranu oraz miejsca, w których mają być zapisywane wysłane. Będziesz musiał edytować ten plik przed użyciem tych plików. Upewnij się, że edytując plik .INI, zmieniasz klucz Directoryoffiles w taki sposób, aby odpowiadał katalogowi, w którym WindowScreenShot zapisuje pliki, ponieważ właśnie tam MT4-AlertMailer.exe (au3) szuka plików, które można dołączyć do twojej poczty e-mail. Ścieżka WorkingDir powinna znajdować się tam, gdzie pliki MT4-AlertMailer.exe (lub .au3) i Alert_Mailer.INI są (normalylne w plikach ekspedycyjnych [MT4InstallDir]). Klucz DestinationofSent to miejsce, w którym pliki będą przesyłane po ich przesłaniu pocztą e-mail - pliki będą również zmień nazwę na SENT na początku nazwy pliku. W tej chwili powinieneś uczynić ten osobny katalog tym, w którym są zapisywane oryginalne zrzuty ekranu, w przeciwnym razie będziesz mieć wiele plików wysłanych z każdym alarmem (poradzę sobie z naprawieniem tego). podczas testowania miałem pliki MT4-AlertMailer.exe Alert_Mailer.INI w folderze expertów [MT4Installdir] i sugeruję, żebyś to zrobił (chociaż powinien działać w dowolnym miejscu). jeśli ją przesuniesz, pamiętaj o zaktualizowaniu pliku Alerter.mql, aby wskazał plik. To daleki od polerowania,ale działa. Krytyka, obserwacje, pomysły itp. Zostały przyjęte z zadowoleniem. To było przyjemne doświadczenie edukacyjne. Jest wiele rzeczy, które chciałbym dodać do tego i prawdopodobnie polubię: Możliwość zmiany wielu ustawień w Alerter.mql za pomocą przyjaznego dla użytkownika okna ”Edit Settings” (do niego dojdę). Możliwość wysyłania pocztą e-mail standardowych z góry ustawionych zrzutów ekranu (jak każde xxx minut) i pomyślę o więcej
    Na razie jest to bardzo trudne .............. ale działa, uwielbiam słyszeć twoje myśli
    ------ Czego się nauczyłem? Kiedy uruchamiasz plik jako skrypt bezpośrednio, a kiedy wywołany przez ShellExecuteA, całkowicie zmieniasz katalog roboczy - najlepiej jawnie określić, co to jest w kodzie! iterowanie przez tablice może być trudne przy użyciu komunikatów wizualnych do wyświetlania wartości zmiennych podczas wykonywania kodu do testowania jest cennym sposobem debugowania! O wiele więcej rzeczy!
    ciesz się, zachęcamy do ulepszania, ale proszę, opublikuj tutaj
    https://www.forex-instant.com/attach...3200224815.zip

  5. #25
    Gratulacje. Założę się, że to dobrze, choć czasami jest to raczej uczucie ulgi niż radości.

  6. #26
    1 Załącznik (y) Tak CodeMeister, to wspaniałe uczucie. Wciąż zdaję sobie sprawę, że muszę się jeszcze wiele nauczyć! Mam jedno pytanie do ciebie (na końcu tego posta). Wprowadziłem pewne ulepszenia, a ponieważ wydaje się, że nie interesuje mnie narzędzie, prawdopodobnie to porzucę. Załączono aktualizację indeksu Alerter.mql. Główną zmianą jest: - Wszystkie ustawienia emaila mogą być teraz konfigurowane przez ustawienia indioru (zamiast pliku INI Indyk teraz dynamicznie tworzy plik INI z każdym zrzutem ekranu, co zostało zrobione poprzez zaimportowanie Kernel32.dll i użycie funkcji FileWrite Windows API, zamiast ograniczonej funkcji zapisu pliku w MT4 (która pozwala pisać tylko do plików CSV lub BIN, a nie do plików TXT lub INI) w ustawieniach wystarczy wpisać ścieżkę do MT4 (upewniając się, że zawierasz tylny ukośnik odwrotny), np. C: \ Program Files \ MT4folder \ następnie wprowadź żądane dane e-mail, jeśli nie dostaniesz właściwej ścieżki (z tylnym ukośnikiem), to nie zadziała. Zapisz plik MT4-AlerterMailer.exe w katalogu plików MT4folder \ experts \, to jest miejsce, w którym skrypt będzie oczekiwał, że go znajdzie.Zapisane zrzuty ekranu będą przechowywane w katalogu twoich ekspertów \ files \ shots \ sent \. Możesz chcieć ”zakodować” swoje dane e-mailowe itp., aby zaoszczędzić ci konieczność ponownego wpisz je cały czas. Tak czy inaczej, teraz robi to, co mówi s na pudełku. Umożliwi to ustawienie alertu dotykowego (lub bliskiego dotyku) dowolnej poziomej linii, prostokąta lub linii trendu i wygeneruje dźwiękowy alert wyśle ​​ci zrzut ekranu jako załącznik do pliku. Po prostu edytuj opis obiektu, aby poinformować Alert_10, a powiadomi cię, gdy cena będzie wynosić 1 pipsa itd. Możliwe przyszłe ulepszenia: - Pozwól na wykrywanie poziomów FIBO w celu powiadomienia dźwiękiem - dowiedz się, jak zaimportować funkcje Windows API, aby umożliwić wysyłanie e-maili za pomocą MAPI lub podobne, więc nie potrzebuję zewnętrznego .exe do wykonania wysyłki. Pytanie do CodeMeister: Czy import odpowiednich funkcji umożliwia wykonanie e-mailingu? tj. podobnie jak zaimportowałem funkcje FileWrite i ShellExecuteA, nie mogłem znaleźć niczego w Internecie na ten temat w MQL4. Jeśli tak, to jakieś wskazówki na temat tego, jak bym to zrobił? Mam podejrzane podejrzenia, że ​​nie jest to trywialne zadanie.
    https://www.forex-instant.com/attach...1319389566.zip

  7. #27
    Cytat Zamieszczone przez ;
    Tak CodeMeister, to wspaniałe uczucie ...
    Świetna robota Sebastiaan76. Czyhałem już jakiś czas i myślałem, że to piekło jest wyższe od mojej stawki, ale co tam. Może pewnego dnia opracuję trochę tego, co robisz, a więc podnieś ogromny krok. Czas na ponowne przeczytanie wszystkich 20 razy i robienie notatek itp. Muszę być w stanie trochę podnieść i zagrać
    z rzeczami, które mogą je złamać. To jest sposób, w jaki mogę się nauczyć zmieniać kod mt4, korzystając z innych pokazanych tu narzędzi. Cieszę się, że ta nić do tej pory była zasadniczo pomiędzy dwoma rozsądnymi głowami, bez wielu rozbieżnych pomysłów, które mogą lub nie są teraz częścią tego, co zostało stworzone. Dzięki wielkie. Twoje zdrowie

  8. #28

    Cytat Zamieszczone przez ;
    Pytanie: Czy importowanie odpowiednich funkcji umożliwia wykonanie e-maila? tj. podobnie jak zaimportowałem funkcje FileWrite i ShellExecuteA, nie mogłem znaleźć niczego w Internecie na ten temat w MQL4. Jeśli tak, to jakieś wskazówki na temat tego, jak bym to zrobił? Mam podejrzane podejrzenia, że ​​nie jest to trywialne zadanie.
    Zadajesz naprawdę trudne pytania. Odpowiedź brzmi: tak naprawdę nie wiem, ponieważ nigdy tego nie próbowałem. Moje podejście polegało na tym, aby robić jak najwięcej poza MT4, jak to tylko możliwe. Miałem złe doświadczenia z MT4 związane z interakcją z Windows. Powiadomienia zostały pominięte, wiersze nie zostały usunięte z wykresów, więc podejrzewałem, że interakcja z Windows była słaba. Należy pamiętać, że było to ponad dwa lata temu i być może nowsze wersje MT4 są lepsze. Jeśli podjąłem się tego, co sugerujesz, moim zmartwieniem byłoby zsynchronizowanie funkcji wysyłania wiadomości e-mail z MT4. Przesyłanie wiadomości e-mail przez sieć jest zbyt wolne, aby można było na nie czekać, dlatego należy to zrobić asynchronicznie. Coś w tle z inną nicią byłoby idealne. MT4 nie czeka na powolny kod do wykonania i przetworzy następny znacznik, gdy nadejdzie, nawet jeśli jakaś logika (np. Usunięcie linii) jest niedokończona. Nie mogę więc powiedzieć, że to zadziała lub nie zadziała. Jest to jedna z tych sytuacji, w których podejście jednej osoby może zadziałać, a niepowodzenie innej osoby.

  9. #29
    Cytat Zamieszczone przez ;
    Zadajesz naprawdę trudne pytania. Odpowiedź brzmi: tak naprawdę nie wiem, ponieważ nigdy tego nie próbowałem. Moje podejście polegało na tym, aby robić jak najwięcej poza MT4, jak to tylko możliwe. Miałem złe doświadczenia z MT4 związane z interakcją z Windows. Powiadomienia zostały pominięte, wiersze nie zostały usunięte z wykresów, więc podejrzewałem, że interakcja z Windows była słaba. Należy pamiętać, że było to ponad dwa lata temu i być może nowsze wersje MT4 są lepsze. Gdybym robił to, co sugerujesz, moim zmartwieniem byłoby zsynchronizowanie funkcji wysyłania e-maili z MT4 ....
    Zrozumiany. Prawdopodobnie nie będę się tym przejmował - jak na koniec, robi to, co trzeba, z zewnętrznym serwerem pocztowym. To nie jest tak eleganckie, jak mogłoby być - ale jestem całkiem zadowolony z wyniku przyznanego mi statusu przyznania się, ponieważ programista jest ”hackerem”

  10. #30
    1 Załącznik (-i) Bardzo dziękuję za udostępnienie tego wspaniałego indii Sebastiaan76. Wprowadziłem niewielkie zmiany, aby działały z najnowszą wersją MT4. I zrobiłem to, aby utworzyć katalog dla każdego symbolu na wypadek, gdyby alerty zostały uruchomione w tym samym czasie. Zrobiłem tak, aby za każdym razem czyścił katalog symboli przed wysłaniem e-maila, aby zrzuty ekranu nie zostały utworzone. Mam nadzieję, że to pomoże komuś :-). Plik .EXE jest taki sam z góry. Dzięki jeszcze raz!
    https://www.forex-instant.com/attach...7263942127.mq4

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Używamy cookies
Używamy cookies, aby jak najlepiej dostosować witrynę do Twoich potrzeb. Kontynuowanie przeglądania tej strony, oznacza zgodę na używanie plików cookies. Aby uzyskać więcej informacji zapoznaj się z naszą Polityką Prywatności.