#import "kernel32.dll" bool GetVolumeInformationW(string lpRootPathName, string lpVolumeNameBuffer, int nVolumeNameSize, int &lpVolumeSerialNumber[], int &lpMaximumComponentLength[], int &lpFileSystemFlags[]。 字符串 lpFileSystemNameBuffer。 int nFileSystemNameSize)。 #导入
解释一下这个问题
如果我没有理解错的话(就像你上面描述的那样),你的编程技能并不高超。
我认为这已经 超出了你的能力范围
//| GetVolumeInformation.mq4|
//+------------------------------------------------------------------+
#property copyright"Copyright © free"
#property link "free"
#property strict
#property show_inputs
#import "kernel32.dll"
bool GetVolumeInformationW(string lpRootPathName,
string lpVolumeNameBuffer,
int nVolumeNameSize,
int &lpVolumeSerialNumber[],
int &lpMaximumComponentLength[],
int &lpFileSystemFlags[]。
字符串 lpFileSystemNameBuffer。
int nFileSystemNameSize)。
#导入
外部字符串DriveLetter = "C";
空白启动()
{
string sNameDisk = DriveLetter + ":\\";
string sNameBuffer = " ";
string sSysNameBuffer = " ";
int dwVSNumber[1] = {0};
int dwMCLength[1] = {0};
int dwFileSF[1] = {0};
bool FunctionOk = GetVolumeInformationW(sNameDisk,
sNameBuffer,
StringLen(sNameBuffer) + 1,
dwVSNumber,
dwMCLength,
dwFileSF。
sSysNameBuffer。
StringLen(sSysNameBuffer) + 1)。
如果(FunctionOk)
Comment("NameBuffer:\'",sNameBuffer,"\'"。
"\nSysNameBuffer。\nSysNameBuffer", sSysNameBuffer,"\'"。
"\nSysNameBuffer: ", sSysNameBuffer,
"\nVSNumber = ", dwVSNumber[0],
"\nMCLength = ", dwMCLength[0],
"\nFileSF = ", dwFileSF[0])。
否则
Comment("GetVolumeInformationA没有检索到所有要求的信息!"
"\nNameBuffer:\nNameBuffer:", sNameBuffer,"\'"。
"\nSysNameBuffer:\'", sSysNameBuffer,"\'"。
"\nVSNumber = ", dwVSNumber[0],
"\nMCLength = ", dwMCLength[0],
"\nFileSF = ", dwFileSF[0])。
返回。
}
在Build 600+中不工作
阅读注册表没有那么多帮助
/ / + ----------------------------------------------- ------------------- +
我只是想比较一下DISK SERIAL NUMBER,如果它是真的,就必须执行剩余的代码。
我提醒你,在这个论坛上不允许做广告。我建议你冷静下来,等待回复,不要强迫性地 发帖。