Получить список логических дисков
Код:
this.createTextField("driveList", 1, 20, 20, 200, 300);
driveList.text="Список логических дисков:"+ newline;
// подключаем системную DLL kernek32.dll
var kernel32 = new mdm.DLL(mdm.System.Paths.windows + "\\system32\\kernel32.dll");
//и вызываем API-функцию GetLogicalDrives из этой библиотеки.
// в оригинале она выглядит так DWORD GetLogicalDrives(VOID)
var numDrives:Number = 1 * kernel32.call("integer", "GetLogicalDrives");
// отключаем DLL
kernel32.close();
// анализируем результат
var driveLettersMask:Array = numDrives.toString(2).split("");
startChar = 65 + (driveLettersMask.length - 1);
// добавляем в список логические диски системы
for (i = driveLettersMask.length - 1; i >= 0; i--) {
if (driveLettersMask[i] == "1") {
var driveLetter:String = String.fromCharCode(startChar - i);
driveList.text += "Диск " + driveLetter + ":" + newline;
}
}
Здесь вызывается API-функция GetLogicalDrives(), которая возвращает число, двоичное представление которого служит маской для букв дисков
по принципу
0000000000001101
...................DCBA
1 - соответствует наличию диска с буквой, 0 - отсутствует диск с такой буквой.
В примере видно, что есть диски A, C и D.