и снова dll и маркет - страница 4

 
Nikolai Karetnikov:

А Маркет-советник сможет записать текстовый файл в качестве ресурса?

Тогда бы я закрытым кодом формировал файл, а открытым менял расширение и воспроизводил

Маркетный советник может:

1. Записывать данные во внутренний ресурс, который может парсить польз.советник, если будет знать путь к тому ресурсу и будет работать параллельно. Что дальше он будет делать с прочитанной инфой - одному пользователю известно.
2. Может скидывать данные в обычный файл, который польз.советник вкючит в себя как ресурс и "переварит" его содержимое своими алгоритмами. 


 
Реter Konow:
А попробуйте. Попытка, как говорится, не пытка.)
Потом, здесь расскажите получилось или нет.

начал пробовать и сразу вопрос.

Библитека winapi\fileapi.mqh

#include <WinAPI\windef.mqh>

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
#import "kernel32.dll"
int    AreFileApisANSI(void);
int    CompareFileTime(FILETIME &file_time1,FILETIME &file_time2);
int    CreateDirectoryW(const string path_name,PVOID security_attributes);
HANDLE CreateFile2(const string file_name,uint desired_access,uint share_mode,uint creation_disposition,CREATEFILE2_EXTENDED_PARAMETERS &create_ex_params);
HANDLE CreateFileW(const string file_name,uint desired_access,uint share_mode,PVOID security_attributes,uint creation_disposition,uint flags_and_attributes,HANDLE template_file);
int    DefineDosDeviceW(uint flags,const string device_name,const string target_path);
int    DeleteFileW(const string file_name);
int    DeleteVolumeMountPointW(const string volume_mount_point);
int    FileTimeToLocalFileTime(FILETIME &file_time,FILETIME &local_file_time);
int    FindClose(HANDLE find_file);
int    FindCloseChangeNotification(HANDLE change_handle);
HANDLE FindFirstChangeNotificationW(const string path_name,int watch_subtree,uint notify_filter);
HANDLE FindFirstFileExW(const string file_name,FINDEX_INFO_LEVELS info_level_id,FIND_DATAW &find_file_data,FINDEX_SEARCH_OPS search_op,PVOID search_filter,uint additional_flags);
HANDLE FindFirstFileNameW(const string file_name,uint flags,uint &StringLength,ushort &LinkName[]);
HANDLE FindFirstFileW(const string file_name,FIND_DATAW &find_file_data);
HANDLE FindFirstStreamW(const string file_name,STREAM_INFO_LEVELS InfoLevel,FIND_STREAM_DATA &find_stream_data,uint flags);
HANDLE FindFirstVolumeW(ushort &volume_name[],uint &buffer_length);
int    FindNextChangeNotification(HANDLE change_handle);
int    FindNextFileNameW(HANDLE find_stream,uint &StringLength,ushort &LinkName[]);
int    FindNextFileW(HANDLE find_file,FIND_DATAW &find_file_data);
int    FindNextStreamW(HANDLE find_stream,FIND_STREAM_DATA &find_stream_data);
int    FindNextVolumeW(HANDLE find_volume,ushort &volume_name[],uint &buffer_length);
int    FindVolumeClose(HANDLE find_volume);
int    FlushFileBuffers(HANDLE file);
uint   GetCompressedFileSizeW(const string file_name,uint &file_size_high);
int    GetDiskFreeSpaceExW(const string directory_name,ulong &free_bytes_available_to_caller,ulong &total_number_of_bytes,ulong &total_number_of_free_bytes);
int    GetDiskFreeSpaceW(const string root_path_name,uint &sectors_per_cluster,uint &bytes_per_sector,uint &number_of_free_clusters,uint &total_number_of_clusters);
uint   GetDriveTypeW(const string root_path_name);
int    GetFileAttributesExW(const string file_name,GET_FILEEX_INFO_LEVELS info_level_id,FILE_ATTRIBUTE_DATA &file_information);
uint   GetFileAttributesW(const string file_name);
int    GetFileInformationByHandle(HANDLE file,BY_HANDLE_FILE_INFORMATION &file_information);
uint   GetFileSize(HANDLE file,uint &file_size_high);
int    GetFileSizeEx(HANDLE file,long &file_size);
int    GetFileTime(HANDLE file,FILETIME &creation_time,FILETIME &last_access_time,FILETIME &last_write_time);
uint   GetFileType(HANDLE file);
uint   GetFinalPathNameByHandleW(HANDLE file,ushort &file_path[],uint file_path,uint flags);
uint   GetFullPathNameW(const string file_name,uint buffer_length,ushort &buffer[],ushort &file_part[]);
uint   GetLogicalDrives(void);
uint   GetLogicalDriveStringsW(uint buffer_length,ushort &buffer[]);
uint   GetLongPathNameW(const string short_path,string &long_path,uint buffer);
uint   GetShortPathNameW(const string long_path,string &short_path,uint buffer);
uint   GetTempFileNameW(const string path_name,const string prefix_string,uint unique,ushort &temp_file_name[]);
uint   GetTempPathW(uint buffer_length,ushort &buffer[]);
int    GetVolumeInformationByHandleW(HANDLE file,ushort &volume_name_buffer[],uint volume_name_size,uint &volume_serial_number,uint &maximum_component_length,uint &file_system_flags,ushort &file_system_name_buffer[],uint file_system_name_size);
int    GetVolumeInformationW(const string root_path_name,ushort &volume_name_buffer[],uint volume_name_size,uint &volume_serial_number,uint &maximum_component_length,uint &file_system_flags,ushort &file_system_name_buffer[],uint file_system_name_size);
int    GetVolumeNameForVolumeMountPointW(const string volume_mount_point,string volume_name,uint buffer_length);
int    GetVolumePathNamesForVolumeNameW(const string volume_name,string volume_path_names,uint buffer_length,uint &return_length);
int    GetVolumePathNameW(const string file_name,ushort &volume_path_name[],uint buffer_length);
int    LocalFileTimeToFileTime(FILETIME &local_file_time,FILETIME &file_time);
int    LockFile(HANDLE file,uint file_offset_low,uint file_offset_high,uint number_of_bytes_to_lock_low,uint number_of_bytes_to_lock_high);
int    LockFileEx(HANDLE file,uint flags,uint reserved,uint number_of_bytes_to_lock_low,uint number_of_bytes_to_lock_high,OVERLAPPED &overlapped);
uint   QueryDosDeviceW(const string device_name,ushort &target_path[],uint max);
int    ReadFile(HANDLE file,ushort &buffer[],uint number_of_bytes_to_read,uint &number_of_bytes_read,OVERLAPPED &overlapped);
int    ReadFile(HANDLE file,ushort &buffer[],uint number_of_bytes_to_read,uint &number_of_bytes_read,PVOID overlapped);
int    ReadFileScatter(HANDLE file,FILE_SEGMENT_ELEMENT &segment_array[],uint number_of_bytes_to_read,uint &reserved,OVERLAPPED &overlapped);
int    ReadFileScatter(HANDLE file,FILE_SEGMENT_ELEMENT &segment_array[],uint number_of_bytes_to_read,uint &reserved,PVOID overlapped);
int    RemoveDirectoryW(const string path_name);
int    SetEndOfFile(HANDLE file);
void   SetFileApisToANSI(void);
void   SetFileApisToOEM(void);
int    SetFileAttributesW(const string file_name,uint file_attributes);
int    SetFileInformationByHandle(HANDLE file,FILE_INFO_BY_HANDLE_CLASS FileInformationClass,FILE_INFO &file_information,uint buffer_size);
int    SetFileIoOverlappedRange(HANDLE FileHandle,uchar &OverlappedRangeStart,ulong Length);
uint   SetFilePointer(HANDLE file,long distance_to_move,long &distance_to_move_high,uint move_method);
int    SetFilePointerEx(HANDLE file,long distance_to_move,long &new_file_pointer,uint move_method);
int    SetFileTime(HANDLE file,FILETIME &creation_time,FILETIME &last_access_time,FILETIME &last_write_time);
int    SetFileValidData(HANDLE file,long ValidDataLength);
int    UnlockFile(HANDLE file,uint file_offset_low,uint file_offset_high,uint number_of_bytes_to_unlock_low,uint number_of_bytes_to_unlock_high);
int    UnlockFileEx(HANDLE file,uint reserved,uint number_of_bytes_to_unlock_low,uint number_of_bytes_to_unlock_high,OVERLAPPED &overlapped);
int    WriteFile(HANDLE file,const ushort &buffer[],uint number_of_bytes_to_write,uint &number_of_bytes_written,OVERLAPPED &overlapped);
int    WriteFile(HANDLE file,const ushort &buffer[],uint number_of_bytes_to_write,uint &number_of_bytes_written,PVOID overlapped);
int    WriteFileGather(HANDLE file,FILE_SEGMENT_ELEMENT &segment_array[],uint number_of_bytes_to_write,uint &reserved,OVERLAPPED &overlapped);
int    WriteFileGather(HANDLE file,FILE_SEGMENT_ELEMENT &segment_array[],uint number_of_bytes_to_write,uint &reserved,PVOID overlapped);
#import
//+------------------------------------------------------------------+

как так вышло, что функция CopyFileW отсутствует?

 
Nikolai Karetnikov:

начал пробовать и сразу вопрос.

Библитека winapi\fileapi.mqh

как так вышло, что функция CopyFileW отсутствует?

Я этого не знаю. Если ее прототипа нет в списке, значит она из какой то другой сборки длл функций.
 
Судя потому что сказал Ренат в параллельной ветке, этот вызов устарел и подходит только под 32-битные версии терминала. 

Вот ссылка на тему: https://www.mql5.com/ru/forum/342311
 
Nikolai Karetnikov:

ой ) 

Мешает то, что vbs скрипт обращается к голосовому движку windows 

по моему Вы какой то сложный велосипед придумали :)

есть бесплатные голосовые движки от Майкрософт и от Гугла

от Майкрософт гуглится в первых запросах http://speech-text.narod.ru/chap5.html


ну и по сабжу, Вы не первый, кто нашел \MQL5\Include\WinAPI

но политика MQ не изменялась:

- безопасность  MQL-программ должна быть обеспечена, поэтому все свободно распространяемые программы должны работать внутри "MQL-песочницы" (вызовы, доступ к файлам)

- для личного пользования или в качестве обучающих материалов можно использовать возможность вызова .dll

 
Похоже, с советником использующим голосовой движок от виндоус в маркет не выйти. Вот вам и непреодолимая граница развития продаваемых советников.)) 

Жаль, конечно. В будущем, можно было бы и жестикуляционное управление подключать.
 
Реter Konow:
Похоже, с советником использующим голосовой движок от виндоус в маркет не выйти. Вот вам и непреодолимая граница развития продаваемых советников.)) 

Жаль, конечно. В будущем, можно было бы и жестикуляционное управление подключать.

по моему идея командовать терминалом с помощью голосовых команд или слушать, что там ЕА вытворяет, выглядит как некий невроз в дальнейшем готовящийся перейти в осложненную форму - психоза или соответствующие заболевания 

)))

имхо, только поприкадываться возможностями техники


ЗЫ:

я пользуюсь ОК-ГУГЛ в тлф, удобный поиск, практично, возможно и на ПК удобно пользоваться мультимедиа или интернет-серфингом

но вот что можно сказать терминалу? открой ордер! цена иди быстрее к тейку! ШАЙБУ-ШАЙБУ!

 
Igor Makanu:

по моему Вы какой то сложный велосипед придумали :)

есть бесплатные голосовые движки от Майкрософт и от Гугла

от Майкрософт гуглится в первых запросах http://speech-text.narod.ru/chap5.html


ну и по сабжу, Вы не первый, кто нашел \MQL5\Include\WinAPI

но политика MQ не изменялась:

- безопасность  MQL-программ должна быть обеспечена, поэтому все свободно распространяемые программы должны работать внутри "MQL-песочницы" (вызовы, доступ к файлам)

- для личного пользования или в качестве обучающих материалов можно использовать возможность вызова .dll

это было бы напрасным занятием.

Моя сова лишь готовит текст для воспроизведения движком, встроенным в винду

 
Igor Makanu:

по моему идея командовать терминалом с помощью голосовых команд или слушать, что там ЕА вытворяет, выглядит как некий невроз в дальнейшем готовящийся перейти в осложненную форму - психоза или соответствующие заболевания 

)))

имхо, только поприкадываться возможностями техники


ЗЫ:

я пользуюсь ОК-ГУГЛ в тлф, удобный поиск, практично, возможно и на ПК удобно пользоваться мультимедиа или интернет-серфингом

но вот что можно сказать терминалу? открой ордер! цена иди быстрее к тейку! ШАЙБУ-ШАЙБУ!

)))

идея не в голосовом управлении терминалом и вселенной ))), а в голосовом сопровождении. Допустим, каждые пять минут озвучивать цену инструмента из набора или иметь возможность задания голосовых оповещений. Подобная штука "Оповещения" в терминале существует, при их срабатывании проигрывается короткий звуковой сигнал, а к какому инструменту он относится, понять невозможно

 
Nikolai Karetnikov:

это было бы напрасным занятием.

Моя сова лишь готовит текст для воспроизведения движком, встроенным в винду

пиши в файл, в MQL5/Files и объясни как натравить на него движок виндовс. Для unix/linux это скрипт буквально в несколько строчек, для powershell подозреваю что так-же.