-
AutoIt
(
http://forum.oszone.net/forumdisplay.php?f=103)
Функция определения номера диска по букве
Добрый день!
Подскажите, есть ли такая функция, для определения номера диска по букве? (например: _GetNumberDrive("G:"))
|
apozlevich |
17-10-2012 17:52 2007275 |
Что подразумевается под номером диска?
|
Цитата:
Цитата 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
|
Цитата:
Цитата 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)
|
Цитата:
Цитата HFShak
Данная функция не правильно показывает... »
|
Всё правильно показывает, нужно было изначально уточнять что требуется получить.
Ну это же не номер диска, это номер раздела (части).
|
Цитата:
Цитата Creat0R
Ну это же не номер диска, это номер раздела (части). »
|
Там и то есть, и другое.
|
Необходимо сделать загрузочную флешку,но загрузчик надо автоматизировать,для выставления загрузки необходим номер диска.
Это из 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]') - прописывание загрузчика,как то так.
|
Время: 00:44.
© OSzone.net 2001-