Hizmetler. Zaten çalışıyor? - sayfa 20

 
Алексей Тарабанов :
Hizmet, ayarlama olasılığı olan verilerle (teklifler) çalışır, ancak hiçbir şeyi yönetmenize izin vermez; özellikle - terminal pencereleri ve tam da ihtiyacınız olan şey bu. Buradan çıkan bariz sonuç şudur: Bir veya başka bir pencereyi kapatmak gerekirse, hizmet bu pencere için açıkça imkansız bir teklif oluşturur ve bu pencereye eklenen komut dosyası, bu teklif alındığında onu kapatır.

En üstte, pencereleri ve Market Watch'ı yöneten tam teşekküllü bir hizmet var. Ama bu yorumlar nereden geliyor? Kod yazmak yardımcı olur.

 
fxsaber :

En üstte, pencereleri ve Market Watch'ı yöneten tam teşekküllü bir hizmet var. Ama bu yorumlar nereden geliyor? Kod yazmak yardımcı olur.

Tam teşekküllü, ancak çalışmıyor ve çalışamıyor.

 
Алексей Тарабанов :

Tam teşekküllü, ancak çalışmıyor ve çalışamıyor.

ME'deki yasağınız kaldırıldı, deneyin.

 
fxsaber :

ME'deki yasağınız kaldırıldı, deneyin.

kırılıyor musun?

 
Ve düşünüyorum. Düşünmeyi severim.
 
fxsaber :

ME'deki yasağınız kaldırıldı, deneyin.

Eğer öyleysen, o zaman teşekkür ederim. Sanırım Renat'tı.

 
Konuyla ilgili bir şey var mı?
 
Terminal başladığında hizmeti başlatmak mümkün olacak mı yoksa zaten orada mı?
Aynı hizmetin birden çok örneğini mi çalıştırıyorsunuz?
Çalışan her kopyayı tanımlamak için parametreler veya en az bir tane geçirme.
 
Yararlı bir hizmet yazdı
 // Сервис проверяет наличие корректной папки Tester.
#property service

input string inFolderName = "Tester" ;

#include <WinAPI\fileapi.mqh>
#include <WinAPI\handleapi.mqh>

#define GENERIC_WRITE                     0x40000000
#define CREATE_ALWAYS                     2
#define FILE_ATTRIBUTE_NORMAL             0x00000080
#define FILE_FLAG_OVERLAPPED             0x40000000

bool FileIsInvalid_WinAPI( const string FileName )
{
   const HANDLE hFile = CreateFileW(FileName, GENERIC_WRITE, 0 , NULL , CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL );      
   const bool Res = (hFile != INVALID_HANDLE );
  
   if (Res)
  {
    CloseHandle(hFile);
    
    DeleteFileW(FileName);
  }
    
   return (Res);
}

void OnStart ()
{
   const string FileName = TerminalInfoString ( TERMINAL_PATH ) + "\\" + inFolderName;

   if (!FileIsInvalid_WinAPI(FileName + "\\" + __FILE__ ))
     MessageBox (FileName + " is invalid!" );  
}


Terminal'i başlatırken, Tester klasörü eksikse hemen bir uyarı belirir.


RAMDrive'daki Test Cihazının olması gerektiğinde çok yardımcı olur

imdisk -a -o awe -s 3 G -m Z: -p "/fs:ntfs /q /y /v:MT5Tester"

mkdir z:\Tester
mklink /j Tester z:\Tester

mkdir cache
mklink /j z:\Tester\cache cache
 
fxsaber :

Terminal'i başlatırken, Tester klasörü eksikse hemen bir uyarı belirir.

Doğrusu çok uygun.

Bilgisayarımı yeniden başlattım ve RAMDrive'ı unuttum. MT5'i başlatıyorum ve hemen bir sorun bildiriyor.