Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Функция определения номера диска по букве

Ответить
Настройки темы
[решено] Функция определения номера диска по букве

Пользователь


Сообщения: 144
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день!
Подскажите, есть ли такая функция, для определения номера диска по букве? (например: _GetNumberDrive("G:"))

Отправлено: 17:46, 17-10-2012

 

Аватара для apozlevich

Ветеран


Автор проектов


Сообщения: 1025
Благодарности: 180

Профиль | Отправить PM | Цитировать


Что подразумевается под номером диска?

-------
echo 127.0.0.1 google.ru >> %systemroot%\system32\drivers\etc\hosts && ipconfig /flushdns && echo Я ничего не трогал, оно само!


Отправлено: 17:52, 17-10-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Код: Выделить весь код
$iDriveNum = _DriveGetNum('G:')
ConsoleWrite($iDriveNum & @LF)

Func _DriveGetNum($sDrive, $sType = 'FIXED')
    Local $aDrives = DriveGetDrive($sType)

    $sDrive = StringRegExpReplace($sDrive, '\\+$', '')

    For $i = 1 To $aDrives[0]
        If $aDrives[$i] = $sDrive Then
            Return $i
        EndIf
    Next

    Return SetError(1, 0, 0)
EndFunc

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:12, 17-10-2012 | #3


Пользователь


Сообщения: 144
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
$iDriveNum = _DriveGetNum('G:')
ConsoleWrite($iDriveNum & @LF)
Func _DriveGetNum($sDrive, $sType = 'FIXED')
Local $aDrives = DriveGetDrive($sType)
$sDrive = StringRegExpReplace($sDrive, '\\+$', '')
For $i = 1 To $aDrives[0]
If $aDrives[$i] = $sDrive Then
Return $i
EndIf
Next
Return SetError(1, 0, 0)
EndFunc »
Данная функция не правильно показывает...
Я имею ввиду номер физического диска, который показан в управление дисками...
wmic path win32_logicaldisktopartition get antecedent,dependent

Отправлено: 09:16, 18-10-2012 | #4


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата HFShak:
Я имею ввиду номер физического диска, который показан в управление дисками...
wmic path win32_logicaldisktopartition get antecedent,dependent »
Пробуйте:
читать дальше »
Код: Выделить весь код
AutoItSetOption("MustDeclareVars", 1)

Local $sComputer                        = "."
Local $oSWbemLocator                    = ObjCreate("WbemScripting.SWbemLocator")
Local $oSWbemServicesEx                 = $oSWbemLocator.ConnectServer($sComputer, "root\cimv2")
Local $oSWbemObjectEx_Win32_LogicalDisk = $oSWbemServicesEx.Get("Win32_LogicalDisk.DeviceID='G:'")
Local $oSWbemObjectEx_Win32_DiskPartition
Local $oSWbemObjectEx_Win32_DiskDrive

For $oSWbemObjectEx_Win32_DiskPartition In $oSWbemObjectEx_Win32_LogicalDisk.Associators_("", "Win32_DiskPartition")
	ConsoleWrite($oSWbemObjectEx_Win32_DiskPartition.DeviceID & " [" & String($oSWbemObjectEx_Win32_DiskPartition.DiskIndex) & "]" & @CRLF)

	For $oSWbemObjectEx_Win32_DiskDrive In $oSWbemObjectEx_Win32_DiskPartition.Associators_("", "Win32_DiskDrive")
		ConsoleWrite(@TAB & $oSWbemObjectEx_Win32_DiskDrive.DeviceID & " [" & String($oSWbemObjectEx_Win32_DiskDrive.Index) & "]" & @CRLF)
	Next
Next

$oSWbemObjectEx_Win32_DiskDrive     = 0
$oSWbemObjectEx_Win32_DiskPartition = 0
$oSWbemObjectEx_Win32_LogicalDisk   = 0
$oSWbemServicesEx                   = 0
$oSWbemLocator                      = 0

Exit(0)
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:18, 18-10-2012 | #5


Пользователь


Сообщения: 144
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо, работает!

Отправлено: 11:11, 18-10-2012 | #6


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата HFShak:
Данная функция не правильно показывает... »
Всё правильно показывает, нужно было изначально уточнять что требуется получить.

Цитата HFShak:
Спасибо, работает! »
Ну это же не номер диска, это номер раздела (части).

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 15:33, 18-10-2012 | #7


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
Ну это же не номер диска, это номер раздела (части). »
Там и то есть, и другое.

Отправлено: 15:35, 18-10-2012 | #8


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


В WinAPIEx есть для этого функция:

Код: Выделить весь код
#include <WinAPIEx.au3>

$aDriveNumber = _WinAPI_GetDriveNumber('G:')

ConsoleWrite('Drive #' & $aDriveNumber[1] & @LF)
ConsoleWrite('Partition #' & $aDriveNumber[2] & @LF)

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Последний раз редактировалось Creat0R, 18-10-2012 в 15:42.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:37, 18-10-2012 | #9


Аватара для crimes

Новый участник


Сообщения: 39
Благодарности: 6

Профиль | Отправить PM | Цитировать


Необходимо сделать загрузочную флешку,но загрузчик надо автоматизировать,для выставления загрузки необходим номер диска.
Это из cmd нужно перевести в Auto IT.
Код: Выделить весь код
C:\Grub4dos\grubinst.exe (hd0)

где 0 - это номер диска
Задача такая на AutoIt:

Папка\
grubinst.exe
script.au3 - он же будет "exe"
script.cmd

Запуск из cmd\bat:
Код: Выделить весь код
script.au3 G:\ - буква флешки
Как то так,но мозгов не хватает:

Сам скрипт script.au3,примерный конечно.
PHP код: Выделить весь код

#include <WinAPIEx.au3>

$aDriveNumber _WinAPI_GetDriveNumber('G:')  - и букву нужно перенести как команду ключ.

ConsoleWrite('Drive #' $aDriveNumber[1] & @LF)
ConsoleWrite('Partition #' $aDriveNumber[2] & @LF)

Run('grubinst.exe hd$aDriveNumber[1]')      -    прописывание загрузчика,как то так

-------
Не говорите что мне делать, я не скажу куда вам идти!


Последний раз редактировалось crimes, 06-04-2014 в 23:11.


Отправлено: 20:02, 06-04-2014 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Функция определения номера диска по букве

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Подключения диска к свободной букве GhostKU Скриптовые языки администрирования Windows 4 16-08-2011 17:13
HDD - Инициализация диска - неверная функция Pshek Накопители (SSD, HDD, USB Flash) 9 22-11-2010 14:48
[статья] Создание переменной среды, соответствующей букве установочного диска Vadikan Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista 0 17-01-2009 18:21
Не существующее функция (программа) при автозагрузке диска xkspy Хочу все знать 6 05-05-2008 15:51
Определения номера звонящего Vlad Drakula Мобильные ОС, смартфоны и планшеты 1 09-06-2003 22:46




 
Переход