#가져오기 "kernel32.dll" bool GetVolumeInformationW(문자열 lpRootPathName, 문자열 lpVolumeNameBuffer, 정수 nVolumeNameSize, 정수 & lpVolumeSerialNumber[], 정수 &lpMaximumComponentLength[], 정수 & lpFileSystemFlags[], 문자열 lpFileSystemNameBuffer, int nFileSystemNameSize); #수입
문제를 설명
내가 올바르게 이해한다면(위에서 설명한 대로) 당신의 프로그래밍 기술은 그다지 뛰어나지 않습니다
나는 그것이 당신의 능력 밖 이라고 생각합니다
//| GetVolumeInformation.mq4 |
//+----------------------------------------------- -------------------+
#property copyright "저작권 © 무료"
#속성 링크 "무료"
#속성엄격
#property show_inputs
#가져오기 "kernel32.dll"
bool GetVolumeInformationW(문자열 lpRootPathName,
문자열 lpVolumeNameBuffer,
정수 nVolumeNameSize,
정수 & lpVolumeSerialNumber[],
정수 &lpMaximumComponentLength[],
정수 & lpFileSystemFlags[],
문자열 lpFileSystemNameBuffer,
int nFileSystemNameSize);
#수입
외부 문자열 DriveLetter = "C";
무효 시작()
{
문자열 sNameDisk = DriveLetter + ":\\";
문자열 sNameBuffer = " ";
문자열 sSysNameBuffer = " ";
정수 dwVSNumber[1] = {0};
정수 dwMCLength[1] = {0};
정수 dwFileSF[1] = {0};
bool FunctionOk = GetVolumeInformationW(sNameDisk,
sName 버퍼,
StringLen(sNameBuffer) + 1,
dwVSN번호,
dwMC길이,
dw파일SF,
sSysName 버퍼,
StringLen(sSysNameBuffer) + 1);
if (FunctionOk)
Comment("이름 버퍼: \'", sNameBuffer,"\'",
"\nSysNameBuffer: \'", sSysNameBuffer,"\'",
"\nSysNameBuffer: ", sSysNameBuffer,
"\nVSNumber = ", dwVSNumber[0],
"\nMCLength = ", dwMCLength[0],
"\nFileSF = ", dwFileSF[0]);
또 다른
Comment("GetVolumeInformationA 요청한 정보가 모두 검색되지 않았습니다!"
"\n이름 버퍼: \'", sNameBuffer,"\'",
"\nSysNameBuffer: \'", sSysNameBuffer,"\'",
"\nVSNumber = ", dwVSNumber[0],
"\nMCLength = ", dwMCLength[0],
"\nFileSF = ", dwFileSF[0]);
반품;
}
빌드 600+에서 작동하지 않습니다.
레지스트리를 읽는 중이 아니므로 전체 도움말
/ / + ----------------------------------------------- ------------------- +
DISK SERIAL NUMBER를 비교하고 싶습니다. 사실이라면 나머지 코드를 실행해야합니다.
이 포럼에서는 광고가 허용되지 않음을 알려드립니다. 그리고 진정하고 답장을 기다리며 강박적 으로 게시하지 않는 것이 좋습니다.