как определить производителя Карт флэш-памяти с интерфейсом USB?

Поскольку целевой URL-адрес получен от третьего лица, после сохранения их в базе данных. вы можете использовать «Sever.Transfer» вместо «Response.Redirect».

Response.Redirect может вызвать кругооборот, поэтому будет латентность.

Целевой URL будет обрабатываться другим доменным / веб-сервером, а не с вашего сервера приложений.

Так что Server.Transfer будет лучшим вариантом для этой операции перенаправления.

6
задан Sumrak 23 September 2008 в 22:12
поделиться

7 ответов

Править: Добавленный код для печати буквы диска.


Проверьте, работает ли этот пример на Вас. Это использует WMI.

Console.WriteLine("Manufacturer: {0}", queryObj["Manufacturer"]);
...
Console.WriteLine("    Name: {0}", c["Name"]); // here it will print drive letter

Полный пример кода:

namespace WMISample
{
    using System;
    using System.Management;

    public class MyWMIQuery
    {
        public static void Main()
        {
            try
            {
                ManagementObjectSearcher searcher =
                    new ManagementObjectSearcher("root\\CIMV2",
                    "SELECT * FROM Win32_DiskDrive");

                foreach (ManagementObject queryObj in searcher.Get())
                {
                    Console.WriteLine("DeviceID: {0}", queryObj["DeviceID"]);
                    Console.WriteLine("PNPDeviceID: {0}", queryObj["PNPDeviceID"]);
                    Console.WriteLine("Manufacturer: {0}", queryObj["Manufacturer"]);
                    Console.WriteLine("Model: {0}", queryObj["Model"]);
                    foreach (ManagementObject b in queryObj.GetRelated("Win32_DiskPartition"))
                    {
                        Console.WriteLine("  Name: {0}", b["Name"]);
                        foreach (ManagementBaseObject c in b.GetRelated("Win32_LogicalDisk"))
                        {
                            Console.WriteLine("    Name: {0}", c["Name"]); // here it will print drive letter
                        }
                    }
                    // ...
                    Console.WriteLine("--------------------------------------------");
                }      
            }
            catch (ManagementException e)
            {
                Console.WriteLine(e.StackTrace);
            }

            Console.ReadLine();
        }
    }
}

Я думаю, что те свойства должны помочь Вам отличить подлинные Карты памяти от других. Тест с несколькими перьевыми дисками проверить, являются ли значения тем же. Посмотрите полную ссылку для свойств Win32_DiskDrive здесь:

http://msdn.microsoft.com/en-us/library/aa394132 (По сравнению с 85) .aspx

Проверьте, имеет ли эта статья также какую-либо справку к Вам:

http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/48a9758c-d4db-4144-bad1-e87f2e9fc979

12
ответ дан 8 December 2019 в 12:24
поделиться

Вы можете получать эту информацию через WMI. Ниже vbs сценарий (скопируйте в текстовый файл с .vbs для выполнения), который использует WMI для получения некоторой информации об объектах Win32_DiskDrive. Информация о Производителе могла бы просто сказать, что Диск Стандартного диска, но Номер модели может иметь то, что Вы ищете.

Set Drives = GetObject("winmgmts:{impersonationLevel=impersonate,(Backup)}").ExecQuery("select * from Win32_DiskDrive")
for each drive in drives
Wscript.echo "Drive Information:" & vbnewline & _
       "Availability: " & drive.Availability & vbnewline & _
       "BytesPerSector: " & drive.BytesPerSector & vbnewline & _
       "Caption: " & drive.Caption & vbnewline & _
       "CompressionMethod: " & drive.CompressionMethod & vbnewline & _
       "ConfigManagerErrorCode: " & drive.ConfigManagerErrorCode & vbnewline & _
       "ConfigManagerUserConfig: " & drive.ConfigManagerUserConfig & vbnewline & _
       "CreationClassName: " & drive.CreationClassName & vbnewline & _
       "DefaultBlockSize: " & drive.DefaultBlockSize & vbnewline & _
       "Description: " & drive.Description & vbnewline & _
       "DeviceID: " & drive.DeviceID & vbnewline & _
       "ErrorCleared: " & drive.ErrorCleared & vbnewline & _
       "ErrorDescription: " & drive.ErrorDescription & vbnewline & _
       "ErrorMethodology: " & drive.ErrorMethodology & vbnewline & _
       "Index: " & drive.Index & vbnewline & _
       "InterfaceType: " & drive.InterfaceType & vbnewline & _
       "LastErrorCode: " & drive.LastErrorCode & vbnewline & _
       "Manufacturer: " & drive.Manufacturer & vbnewline & _
       "MaxBlockSize: " & drive.MaxBlockSize & vbnewline & _
       "MaxMediaSize: " & drive.MaxMediaSize & vbnewline & _
       "MediaLoaded: " & drive.MediaLoaded & vbnewline & _
       "MediaType: " & drive.MediaType & vbnewline & _
       "MinBlockSize: " & drive.MinBlockSize & vbnewline & _
       "Model: " & drive.Model & vbnewline & _
       "Name: " & drive.Name & vbnewline & _
       "NeedsCleaning: " & drive.NeedsCleaning & vbnewline & _
       "NumberOfMediaSupported: " & drive.NumberOfMediaSupported & vbnewline & _
       "Partitions: " & drive.Partitions & vbnewline & _
       "PNPDeviceID: " & drive.PNPDeviceID & vbnewline & _
       "PowerManagementSupported: " & drive.PowerManagementSupported & vbnewline & _
       "SCSIBus: " & drive.SCSIBus & vbnewline & _
       "SCSILogicalUnit: " & drive.SCSILogicalUnit & vbnewline & _
       "SCSIPort: " & drive.SCSIPort & vbnewline & _
       "SCSITargetId: " & drive.SCSITargetId & vbnewline & _
       "SectorsPerTrack: " & drive.SectorsPerTrack & vbnewline & _
       "Signature: " & drive.Signature & vbnewline & _
       "Size: " & drive.Size & vbnewline & _
       "Status: " & drive.Status & vbnewline & _
       "StatusInfo: " & drive.StatusInfo & vbnewline & _
       "SystemCreationClassName: " & drive.SystemCreationClassName & vbnewline & _
       "SystemName: " & drive.SystemName & vbnewline & _         
       "TotalCylinders: " & drive.TotalCylinders & vbnewline & _         
       "TotalHeads: " & drive.TotalHeads & vbnewline & _        
       "TotalSectors: " & drive.TotalSectors & vbnewline & _        
       "TotalTracks: " & drive.TotalTracks & vbnewline & _         
       "TracksPerCylinder: " & drive.TracksPerCylinder & vbnewline
next
2
ответ дан 8 December 2019 в 12:24
поделиться

Вы могли использовать неуправляемые вызовы API Win32 для обработки этого.

http://www.codeproject.com/KB/system/EnumDeviceProperties.aspx

2
ответ дан 8 December 2019 в 12:24
поделиться

Прохождение через или Win32 CM_ (управление устройствами) или WMI и захват идентификатора PnP. Ищите VID (идентификатор Поставщика).

Я вижу информацию для устройства, под которым я просто вставил Win32_USBControllerDevice и Win32_DiskDrive.

2
ответ дан 8 December 2019 в 12:24
поделиться

Если Win32_DiskDrive объекты не приводят к информации, которую Вы ищете, Вы могли также посмотреть на класс Win32_PhysicalMedia объектов WMI. У них есть Производитель, Модель, PartNumber и свойства описания, которые могут оказаться полезными.

1
ответ дан 8 December 2019 в 12:24
поделиться
0
ответ дан 8 December 2019 в 12:24
поделиться

Привет попробуйте это в использовании WMI

Option Explicit
Dim objWMIService, objItem, colItems, strComputer

' On Error Resume Next
strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" _
& strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery(_
"Select Manufacturer from Win32_DiskDrive")

For Each objItem in colItems
Wscript.Echo "Computer: " & objItem.SystemName & VbCr & _
   "Manufacturer: " & objItem.Manufacturer & VbCr & _
   "Model: " & objItem.Model
Next

Modelcould быть более полезным, чем Производитель. Вы смотрите на FirmwareRevision, если Вы хотите заблокировать Вас приложение теперь только одному Производителю и один (немного) Микропрограммный Пересмотр.

Надежда это помогает.

0
ответ дан 8 December 2019 в 12:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: