#import "kernel32.dll" bool GetVolumeInformationW(string lpRootPathName, 文字列 lpVolumeNameBuffer, int nVolumeNameSize, int &lpVolumeSerialNumber[], int &lpMaximumComponentLength[], int &lpFileSystemFlags[], 文字列lpFileSystemNameBuffer, int nFileSystemNameSize); #インポート
extern string DriveLetter = "C";
void start() { string sNameDisk = DriveLetter + ":\"; 文字列 sNameBuffer = " "; 文字列 sSysNameBuffer = " "; int dwVSNumber[1] = {0}; int dwMCLength[1] = {0}; int dwFileSF[1] = {0}; int dwFileSF[1] = {0}; bool FunctionOk = GetVolumeInformationW(sNameDisk, sNameBuffer, StringLen(sNameBuffer) + 1, dwVSNumber, dwMCLength, dwFileSF, sSysNameBuffer, StringLen(sSysNameBuffer) + 1); if (FunctionOk) Comment("NameBuffer:\Όταμμα ταμμα ταμμα ταμμα ταμμα "⑭SysNameBuffer:\Όταμμα ταμμα ταμμα "ⅳnSysNameBuffer: ", sSysNameBuffer.ⅳnSysNameBuffer "です。 "ⅳnVSNumber = ", dwVSNumber[0], "\nMCLength = ", dwMCLength[0], "\nFileSF = ", dwFileSF[0]); さもないと Comment("GetVolumeInformationA not all the requested information was retrieved!"); else "¦NameBuffer: "⑭SysNameBuffer:\¦SysNameBuffer,"¦"¦"¦", "ⅳnVSNumber = ", dwVSNumber[0], "\nMCLength = ", dwMCLength[0], 「を入力します。
問題を説明する
もし私が正しく理解しているならば(あなたが上で述べたように)、あなたのプログラミングスキルはそれほど高くはないでしょう。
あなたの能力を超えて いると思います 。
//| GetVolumeInformation.mq4
//+------------------------------------------------------------------+
#property copyright"著作権 © フリー"
#property link "フリー"
#property strict
#property show_inputs
#import "kernel32.dll"
bool GetVolumeInformationW(string lpRootPathName,
文字列 lpVolumeNameBuffer,
int nVolumeNameSize,
int &lpVolumeSerialNumber[],
int &lpMaximumComponentLength[],
int &lpFileSystemFlags[],
文字列lpFileSystemNameBuffer,
int nFileSystemNameSize);
#インポート
extern string DriveLetter = "C";
void start()
{
string sNameDisk = DriveLetter + ":\";
文字列 sNameBuffer = " ";
文字列 sSysNameBuffer = " ";
int dwVSNumber[1] = {0};
int dwMCLength[1] = {0}; int dwFileSF[1] = {0};
int dwFileSF[1] = {0};
bool FunctionOk = GetVolumeInformationW(sNameDisk,
sNameBuffer,
StringLen(sNameBuffer) + 1,
dwVSNumber,
dwMCLength,
dwFileSF,
sSysNameBuffer,
StringLen(sSysNameBuffer) + 1);
if (FunctionOk)
Comment("NameBuffer:\Όταμμα ταμμα ταμμα ταμμα ταμμα
"⑭SysNameBuffer:\Όταμμα ταμμα ταμμα
"ⅳnSysNameBuffer: ", sSysNameBuffer.ⅳnSysNameBuffer "です。
"ⅳnVSNumber = ", dwVSNumber[0],
"\nMCLength = ", dwMCLength[0],
"\nFileSF = ", dwFileSF[0]);
さもないと
Comment("GetVolumeInformationA not all the requested information was retrieved!"); else
"¦NameBuffer:
"⑭SysNameBuffer:\¦SysNameBuffer,"¦"¦"¦",
"ⅳnVSNumber = ", dwVSNumber[0],
"\nMCLength = ", dwMCLength[0],
「を入力します。
を返します。
}
ビルド600+で動作しない
レジストリを読み取ることは、それほど完全ではありません
/ / + ----------------------------------------------- ------------------- +
ただ、DISK SERIAL NUMBERを比較し、それが真であれば、残りのコードを実行しなければならないのです。
私はこのフォーラムでアドバタイズが許可されていないことを思い出させる。そして、私はあなたが落ち着いて、応答を待って、強制的に 投稿しないことをお勧めします。