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

Добро пожаловать,

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

Меню сайта




Ваше мнение
Оцените дизайн сайта

Супер
Симпатично
Пойдет
Ничего хорошего
Просто клиника


Результаты
Другие опросы

Всего голосов: 891
Комментарии: 2


Наши партнеры



Статистика




Programming books  Download software  Documentation  Scripts  Content Managment Systems(CMS)  Templates  Icon Sets  Articles  Contacts  Voting  Site Search




Статьи и обзоры



Как определить букву флеш-накопителя

1С-Предприятие - это программный комплекс, контролирующий все стадии товарооборота, от поступления товара на склад до его продажи и проведения через бухгалтерские книги. Первоначально этот комплекс задумывался как бухгалтерская программа и назывался 1C-Бухгалтерия. Возникла необходимость програмно обращаться с определенному флеш-накопителю. Так как эти девайсы монтируются часто под разными буквами, в зависимости от порта, порядка подключения, начал искать варианты однозначного определения сабжа.

Изначально думал заставить монтироваться флешку всегда на одну-единственную букву, но к сожалению однозначного решения не нашел.

Поэтому решил определять эту букву по какому-нибудь ID устройства. Вот что получилось:

Код
Функция ПолучитьБуквуДиска(SN)
scrptCtrl = СоздатьОбъект("MSScriptControl.ScriptControl");
scrptCtrl.Language = "vbscript";
scrptCtrl.addcode("Public Function RunCodeIn1c()
|Res = vbNullString
|strComputer="".""
|strSN="""+SN+"""
|Set objWMIService = GetObject(""winmgmts:\\"" & strComputer & ""\root\CIMV2"")
|Set colItems = objWMIService.ExecQuery(_
|""Sel ect * fr om Win32_LogicalDisk where VolumeSerialNumber = '"" & strSN & ""' "",,48)
|For Each objItem in colItems
|Res = objItem.DeviceID
|Next
|RunCodeIn1c = Res
|End Function
|");
Рез = scrptCtrl.Run("RunCodeIn1c");
Возврат(Рез);
КонецФункции


Информацию о подключенных флеш-накопителях можно получить например так (в EXCEL):
Код
Private Sub CommandButton1_Click()
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Sel ect * from Win32_LogicalDisk", , 48)
i = 0
For Each objItem In colItems
i = i + 1
Cells(i, 1) = objItem.Caption
Cells(i, 2) = objItem.Description
Cells(i, 3) = objItem.DeviceID
Cells(i, 4) = objItem.DriveType
Cells(i, 5) = objItem.FileSystem
Cells(i, 6) = objItem.InstallDate
Cells(i, 7) = objItem.FreeSpace
Cells(i, 8) = objItem.MediaType
Cells(i, 9) = objItem.PNPDeviceID
Cells(i, 10) = objItem.Name
Cells(i, 11) = objItem.PNPDeviceID
Cells(i, 12) = objItem.PowerManagementCapabilities
Cells(i, 13) = objItem.PowerManagementSupported
'Cells(i, 14) = objItem.ProtocolSupported
Cells(i, 15) = objItem.Status
Cells(i, 16) = objItem.StatusInfo
Cells(i, 17) = objItem.SystemCreationClassName
Cells(i, 18) = objItem.SystemName
Cells(i, 19) = objItem.TimeOfLastReset
Cells(i, 20) = objItem.VolumeDirty
Cells(i, 21) = objItem.SystemName
Cells(i, 22) = objItem.VolumeName
Cells(i, 23) = objItem.VolumeSerialNumber
Next
End Sub



Нет комментариев. Почему бы Вам не оставить свой?
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
Внимание! Если у вас не получилось найти нужную информацию, используйте рубрикатор или воспользуйтесь поиском


.



Статьи и обзоры Программирование Как определить букву флеш-накопителя Возникла необходимость програмно обращаться определенному флеш-накопителю Так как эти девайсы монтируются часто под разными буквами зависимости от порта порядка подключения начал искать варианты однозначного определения сабжа Изначально думал заставить монтироваться флешку всегда на одну-единственную букву но сожалению решения не нашел Поэтому решил определять эту по какому-нибудь устройства Вот