1 (изменено: Footman, 2011-09-29 22:36:37)

Тема: AHK: Определение количества дисков в системе

Доброго времени суток.

Не могу придумать как же определить сколько и какие буквы дисков подключены к компьютеру.

Можно конечно перерывать весь алфавит A B ..Z  в поисках валидного диска, но возможно есть способ проще.

2

Re: AHK: Определение количества дисков в системе

Можно, используя API-функцию GetLogicalDrives():

bitmask := DllCall("GetLogicalDrives")

While bitmask >>= (A_Index - 1) != 0
   if bitmask & 1
      Disks .= Chr(Asc("A") + A_Index - 1)

MsgBox, % Disks

Footman, не забываем о больших буквах и точках в конце предложения.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Определение количества дисков в системе

Благодарю.
Все просто и ясно

4

Re: AHK: Определение количества дисков в системе

teadrinker, такого в Коллекции было? Если нет — поместите под заголовком, например: «AHK: Определение имён дисков в системе».

5

Re: AHK: Определение количества дисков в системе

Хорошо, размещу завтра.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

6

Re: AHK: Определение количества дисков в системе

teadrinker пишет:

Можно, используя API-функцию GetLogicalDrives():
...

Красиво, но забыли про DriveGet Список всех дисков:

DriveGet, x, list
msgbox %x%

Список винчестеров:

DriveGet, x, list, FIXED
msgbox %x%

7

Re: AHK: Определение количества дисков в системе

Да, не обращал на неё внимания! )) Надо исправить.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

8 (изменено: Footman, 2011-10-04 01:51:29)

Re: AHK: Определение количества дисков в системе

Александр_ пишет:

Список винчестеров:

DriveGet, x, list, FIXED
msgbox %x%

А если требуются не винчестеры, а съемные носители? есть ли подобного рода функция?
-------------------------
нашел

DriveGet, x, list, REMOVABLE
msgbox %x%