ve yine dll ve market

 

Tünaydın!

Market'te 1 numaralı kural dll yasaktır. Tamam, bu anlaşılabilir)

şimdi durum

Bana göründüğü gibi, Expert Advisor paketinde mükemmel çalışan, ancak hiçbir şekilde ticaret yapmayan yararlı bir işlevsellik var. Çalışmak için onTimer yöntemini kullanır. DLL, bir dosyayı yeniden adlandırmak (MQL'de değil), vbs uzantılı bir dosya oluşturmak :) ve bu görsel temel betiği bir kabuk komutuyla çalıştırmak için kullanılır. Tehlikeli, anlıyorum.

Bu tür girdilerle Market üzerinden işlevsellik nasıl sağlanır?

 
Nikolai Karetnikov :

Tünaydın!

Market'te 1 numaralı kural dll yasaktır. Tamam, bu anlaşılabilir)

şimdi durum

Bana göründüğü gibi, Expert Advisor paketinde mükemmel çalışan, ancak hiçbir şekilde ticaret yapmayan yararlı bir işlevsellik var. Çalışmak için onTimer yöntemini kullanır. DLL, bir dosyayı yeniden adlandırmak (MQL'de değil), vbs uzantılı bir dosya oluşturmak :) ve bu görsel temel betiği bir kabuk komutuyla çalıştırmak için kullanılır. Tehlikeli, anlıyorum.

Bu tür girdilerle Market üzerinden işlevsellik nasıl sağlanır?

herhangi biri?

Dll çağrılarının yapıldığı sınıfı ayrı bir kütüphaneye alıp açıklamaya eklemek gibi düşüncelerim varken.

Bu arada, işlevselliğin çalışması için mql5\files dizininde olması gereken bir csv dosyasına da ihtiyacınız var. Açıklamaya eklemenin bir yolu var mı?

 
Nikolai Karetnikov :

herhangi biri?

Dll çağrılarının yapıldığı sınıfı ayrı bir kütüphaneye alıp açıklamaya bir link eklemek gibi düşüncelerim varken.

Bu arada, iş için

ne için ?

piyasanın ana kuralı - dll ve diğer şüpheli faaliyetler yasaktır. Herhangi bir harici nesneye (göstergeler ve kitaplıklar) bağımlılık yasaktır.

Çağrıları bir sınıfa veya kitaplığa taşıyarak DLL'den hiçbir şekilde kurtulamazsınız.

PS/ böyle şüpheli bir şeyi satmak (kapalı yazılımdan VBS'nin oluşturulması ve başlatılması), kişisel sorumluluk almalısınız ve kimse aracı olmak istemez.

 
Nikolai Karetnikov :

herhangi biri?

Dll çağrılarının yapıldığı sınıfı ayrı bir kütüphaneye alıp açıklamaya eklemek gibi düşüncelerim varken.

Bu arada, işlevselliğin çalışması için mql5\files dizininde olması gereken bir csv dosyasına da ihtiyacınız var. Açıklamaya ek olarak eklemenin bir yolu var mı?

Gerçekten bir işlevden, terminalin kendisinden yoksun musunuz? bir üçüncü taraf programı ne yapabilir - bir terminal ne yapamaz ?????????????????????

 
Maxim Kuznetsov :

ne için ?

piyasanın ana kuralı - dll ve diğer şüpheli faaliyetler yasaktır. Herhangi bir harici nesneye (göstergeler ve kitaplıklar) bağımlılık yasaktır.

Çağrıları bir sınıfa veya kitaplığa taşıyarak DLL'den hiçbir şekilde kurtulamazsınız.

PS/ böyle şüpheli bir şeyi satmak (kapalı yazılımdan VBS'nin oluşturulması ve başlatılması), kişisel sorumluluk almalısınız ve kimse aracı olmak istemez.

Henüz böyle bir ayrılmanın mekanizmasını anlamıyorum. Diyelim ki dll'ye erişilen sınıf kodu burada

 class cIntSpeech
  {

public :
   void Say( string aText)
     {
      
       if (! MQL5InfoInteger ( MQL5_DLLS_ALLOWED ))
        {
         Alert ( __FUNCTION__ + ": Allow dll" );
         return ;
        }
     
     string m_fntxt= "sspeechexample.txt" ;
     string m_fnvbs= "sspeechexample.vbs" ;
      
     int h= FileOpen ( "sspeechexample.txt" , FILE_ANSI | FILE_WRITE );
     FileWrite (h, "CreateObject(\"SAPI.SpVoice\").Speak\"" +aText+ "\"" );
     FileClose (h);

     string srcvbs = TerminalInfoString ( TERMINAL_DATA_PATH )+ "\\MQL5\\Files\\sspeechexample.txt" ; //+MQLInfoString(MQL_PROGRAM_NAME)+".mq5";
     string dstvbs = TerminalInfoString ( TERMINAL_DATA_PATH )+ "\\MQL5\\Files\\sspeechexample.vbs" ; //"+MQLInfoString(MQL_PROGRAM_NAME)+".vbs";
         if (CopyFileW(srcvbs,dstvbs, 0 )){
             Print ( "Файл скопирован" );
            }
             else {
         Print ( "Не удалоcь скопировать файл" );   
   }
   int r = - 1 ;
   r = ShellExecuteW( NULL , NULL ,dstvbs, "" , "" , 0 );
   Print ( "Код ошибки %d" , r);
      
     }
  };



Markette olacak olan Expert Advisor'ın kendisinde 3-4 sınıf daha vardır, dll'ye sadece bir çağrı vardır. Diyelim ki, uzmanın kodundaki DLL sınıfını değiştirdim, shellexecute() ve copyW()'yi printf() ile değiştirdim ve tüm baykuşu kurallara uygun hale getirdim.

Potansiyel bir alıcının güvenli ancak işe yaramaz bir sınıfı, faydalı işler yapan gerçek bir sınıfla değiştirmesini nasıl kolaylaştırabilirim?

 
Alexsandr San :

Gerçekten bir işlevden, terminalin kendisinden yoksun musunuz? bir üçüncü taraf programı ne yapabilir - bir terminal ne yapamaz ?????????????????????

Birçok şey :)

Ancak özellikle, MQL5 bir .vbs dosyası oluşturamaz

 

Bana öyle geliyor ki bu usta uzun bir karantina istiyor.

Расширение VBS – это скрипт, написанный на языке Visual Basic, используется для выполнения команд и программ в среде Windows. VBS скрипты интерпретируются или оконным интерпретатором WScript.exe, или консольным – CScript.exe (вместе они – Windows Script Host или WSH). Файлы .VBS могут так же иметь расширение .VB . Создавать скрипты VBS можно в блокноте или в любом другом текстовом редакторе, т.к. VBS – это текстовый формат. VBScript был создан Microsoft в качестве замены устаревшему языку .CMD , интерпретируемому приложением command.com.
Скрипты VBS чаще всего используются при автоматизации администрирования систем Windows или при написании кода на страницах Classic ASP, или в клиентских скриптах в браузере Internet Explorer.

NOT: Dikkatli olun .VBS dosyalarına kötü amaçlı yazılım veya Truva atları bulaşmış olabilir . Özellikle dosyayı postayla aldıysanız veya kaynağı bilinmiyorsa, .VBS dosyalarını açmadan önce kontrol etmek için bir virüsten koruma yazılımı kullanın.

kaynak: http://fileext.ru/vbs

Onu piyasaya sürmek için bu kadar uğraşan ne ???

 
Nikolai Karetnikov :

Birçok şey :)

Ancak özellikle, MQL5 bir .vbs dosyası oluşturamaz

belki .bat ve .cmd'ye de ihtiyacınız vardır

 
Nikolai Karetnikov :

Tünaydın!

Markette 1 numaralı kural dll yasaktır. Tamam, bu anlaşılabilir)

şimdi durum

Bana göründüğü gibi, Expert Advisor paketinde mükemmel çalışan, ancak hiçbir şekilde ticaret yapmayan yararlı bir işlevsellik var. Çalışmak için onTimer yöntemini kullanır. DLL, bir dosyayı yeniden adlandırmak (MQL'de değil), vbs uzantılı bir dosya oluşturmak :) ve bu görsel temel betiği bir kabuk komutuyla çalıştırmak için kullanılır. Tehlikeli, anlıyorum.

Bu tür girdilerle Market üzerinden işlevsellik nasıl sağlanır?

Altı çizili ifadeyi çözebilir misiniz? )) Win API işlevlerinin çoğu için sarmalayıcılar uzun zaman önce yapılmıştır. Pazarda kullanılabilirler, diye sordu Renat bir uzmana.

\MQL5\Include\WinAPI\..

 
Alexey Volchanskiy :

Altı çizili ifadeyi çözebilir misiniz? )) Win API işlevlerinin çoğu için sarmalayıcılar uzun zaman önce yapılmıştır. Pazarda kullanılabilirler, diye bir uzmana sordu Renat.

\MQL5\Include\WinAPI\..

Gözlerime inanamıyorum!

Alexey, sen misin? Dürüst olmak gerekirse forumda çok eksiksiniz... Aksi halde herkes uyuşuk ve kasvetli..

 
Alexey Volchanskiy :

Altı çizili ifadeyi çözebilir misiniz? )) Win API işlevlerinin çoğu için sarmalayıcılar uzun zaman önce yapılmıştır. Pazarda kullanılabilirler, diye bir uzmana sordu Renat.

\MQL5\Include\WinAPI\..

Böylece WinApi, işlevleri Dll'den çeker ve tüm Dll çağrıları yasaktır.
Bir tür belirsizlik elde ediliyor ve hatırladığım kadarıyla tam tersine WinApi aramalarının da yasak olduğunu yazmışlar.