اول از همه بگم که این موزیک رو از دست ندی
https://open.spotify.com/track/3JqZ1VJzwlX499W9avmCHo?si=9a0cbc06a8cb43fc
و چرا اینجا میذارم ؟
چون تو الان خوابی :)
و منم اصن دوست ندارم وقتی خوابی مزاحمت بشم و بهت پیام بدم
و چون میدونم اینجا رو میخونی پس اینجا برات بارگذاری کردم
و اما بعددددد
خب با این قطعه کد میتونی یک bat فایل رو در mql4 صدا بزنی
فقط حواست باشه که تیک allow dll رو هم تیک بزنی
کدش خیلی ساده است
محتویات bat اینه
@echo off
echo %COMPUTERNAME% > computer_name.txt
wmic diskdrive get serialnumber | findstr /r /v "^$" | findstr /r /v "SerialNumber" >> computer_name.txt
البته این هم هست که مثل دستور بالا عمل میکنه اما ، همه کارکتر ها رو بهم میچسبونه
@echo off
:: فعال کردن Delayed Expansion
setlocal enabledelayedexpansion:: دریافت Computer Name و ذخیره در متغیر
for /f %%i in ('echo %COMPUTERNAME%') do set compName=%%i:: دریافت شماره سریالهای دیسک و ذخیره در متغیر
set serials=
for /f "skip=1" %%a in ('wmic diskdrive get serialnumber') do (
set "serials=!serials!%%a"
):: ترکیب Computer Name و سریالها بدون فاصله
echo %compName%!serials! > "%~dp0MQL4\Files\computer_name.txt"
و محتویات mql4 اینه
البته باید در اول برنامه اینو اضافه کنی
#include // برای اجرای دستور خارجی
#include
#import "shell32.dll"
int ShellExecuteW(int hwnd,const string Operation,const string File,const string Parameters,const string Directory,int ShowCmd);
#import
بعدش توی این تابع میتونی صداش بزنی :)
string GetComputerName() {
// استفاده از TerminalInfoString برای گرفتن مسیر داده ترمینال
string terminalDataPath = TerminalInfoString(TERMINAL_DATA_PATH);
// اجرای فایل BAT
int r = ShellExecuteW(0, "Open", "get_computer_name.bat", NULL, terminalDataPath, 5);
// Print("Shell ", r); // میتونید این رو برای بررسی نتیجهی اجرای فایل BAT فعال کنید// کمی صبر میکنیم تا فایل نوشته بشه
Sleep(1000);
string content ="";
//--- parameters for data reading
string InpFileName="computer_name.txt"; // file name
string InpDirectoryName=""; // directory name//--- open the file
ResetLastError();
int file_handle=FileOpen(InpDirectoryName+"//"+InpFileName, FILE_READ | FILE_TXT);
if(file_handle!=INVALID_HANDLE)
{
//PrintFormat("%s file is available for reading",InpFileName);
//PrintFormat("File path: %s\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH));
//--- additional variables
FileSeek(file_handle, 0, SEEK_SET); // اطمینان از اینکه نشانگر فایل در ابتدای فایل قرار دارد
//--- read data from the file
while (!FileIsEnding(file_handle)) {
string line = FileReadString(file_handle);
content = content + line;
Print(content);
}
//--- close the file
FileClose(file_handle);
//PrintFormat("Data is read, %s file is closed",InpFileName);
}
else
PrintFormat("Failed to open %s file, Error code = %d",InpFileName,GetLastError());
// برگشت دادن محتویات خوانده شده
return content;
}