Hardware id   zodpovězená otázka

VB.NET, Hardware

Měl bych dotázek jak zjistím seriové číslo flash disku v vb.net.

Děkuji.

[email protected]

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
Dim volumeSerialNumber As String
Using logicalDiskSearcher As New System.Management.ManagementObjectSearcher("SELECT * FROM Win32_LogicalDisk WHERE DeviceID = 'X:'")
  Using logicalDisks As System.Management.ManagementObjectCollection = logicalDiskSearcher.Get()
    For Each logicalDisk As System.Management.ManagementObject In logicalDisks
      volumeSerialNumber = logicalDisk("VolumeSerialNumber").ToString()
    Next
  End Using
End Using

Za X: si dosaďte písmeno Flashdisku. Kód vyžaduje oprávnění Administrators. Nezapomeňte do projektu přidat odkaz na System.Management.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Pokud vidím správně tak se jedná o seriové číslo svazku nikoli hardwaru. Totočíslo svazku se mění při každém formátu. Já mám za to že by to mělo býti win32_pnpentity.

Pár dokazu :

http://www.codeproject.com/KB/vbscript/V...

http://www.codeproject.com/KB/system/Get...

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Váš dotaz byl na sériové číslo, tudíž jsem uvedl kód pro sériové číslo. Pokud by vás zajímalo něco jiného, můžete použít jakoukoliv vlastnost dostupnou ve třídě Win32_LogicalDisk, viz. http://msdn2.microsoft.com/en-us/library...

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Fajn frci to, ale mam problemek a mozna je to jen blbost. Tam kam mám zapsat pismeno jednotky tak mi nebeha proměná. Mozna je to fakt kravina, ale pro mne je to neprekonatelny problem. Jeste prosim o help...

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
Dim deviceID As String = "C:"
Dim queryString As String = String.Format("SELECT * FROM Win32_LogicalDisk WHERE DeviceID = '{0}'", deviceID)
Using logicalDiskSearcher As New System.Management.ManagementObjectSearcher(queryString)

End Using

Za deviceID můžete dosadit jakoukoliv proměnnou typu String (např. vlastnost Text z TextBox) ovšem musí být ve formátu písmeno:

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Děkuji, ale z jake proměné načtu to seriové číslo??

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Sériové číslo bude stejně jako v předchozím případě v proměnné volumeSerialNumber. Nechtělo se mi zbytečně opisovat vnitřní cyklus.

Dim deviceID As String = "C:"
Dim queryString As String = String.Format("SELECT * FROM Win32_LogicalDisk WHERE DeviceID = '{0}'", deviceID)
Using logicalDiskSearcher As New System.Management.ManagementObjectSearcher(queryString)
  Using logicalDisks As System.Management.ManagementObjectCollection = logicalDiskSearcher.Get()
    For Each logicalDisk As System.Management.ManagementObject In logicalDisks
      volumeSerialNumber = logicalDisk("VolumeSerialNumber").ToString()
    Next
  End Using
End Using

nahlásit spamnahlásit spam 0 odpovědětodpovědět

jj aha tak ted mi to dava smysl moc dekuji. :-)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

No tak trochu je to nějaké čudné protože mi to hlásí v každém PC jiné číslo. To dost dobře nechápu, když to má být unikátní identifikátor.

Děkuji za odpověď. :-)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nikde není řečeno, že sériové číslo svazku je unikátní. O správnosti se můžete přesvědčit příkazem VOL [jednotka:] z příkazového řádku a porovnáním hodnot. Předpokládám že v tom programu zadáváte jednotku nějak dynamicky a ne že je tam napevno...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Hmmm.... tak to jsem netušil. To je ale prekérní situace, předpokládám ze byste věděl jak zjistit unikátní číslo z flash disku, věc se má tak že jde o identifikátor který ověřuje pravost uživatele nikoli PC, proto potřebuji znát nějaký unikátní identifikátor nějakého přenosného zařízení (nejlépe flash disk)…

nahlásit spamnahlásit spam 0 odpovědětodpovědět

No tak na toto by se nejlépe hodila autentizace uživatele pomocí karty SmartCard, vyžaduje to však hardwarové řešení.

Jinak bych zkusil použít vlastnosti DeviceID nebo PNPDeviceID místo VolumeSerialNumber. Tyto vlastnosti jsou unikátní identifikátory, nejsem si však jist jestli jsou unikátní globálně, nebo pouze v rámci všech zařízení na jednom počítači, to byste musel vyzkoušet.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

ja to testnu, s tou smartcard mas pravdu mam to v praci a ohledně bezpečnosti je to fajn ale z meho pohledu mne to stve skoro nic menuzu.. :-(

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback