Zanima me kad imam vise web kamera na jednom usb hub-u, mogu li (i kako) saznati pojedinacna imena tih kamera preko vb koda. npr. "Veo webcam", "Logitech webcam",... Ovaj kod mi je potreban za softver za nadzor.
Naziv usb web kamere? (multicam)
Zaključano
Zakačeno
Mozda ovo pomogne. Pogledaj VBEnumCapDrivers funkciju.
http://www.shrinkwrapvb.com/vcap_src.zip
http://www.shrinkwrapvb.com/vcap_src.zip
Potpis
Nisi me razumio, treba mi poseban api da dobijem samo ime sourcea
Pa napisah ti, pogledaj VBEnumCapDrivers funkciju u ovom kodu.
Potpis
Ej stvarno izvini na sve moguce nacine ali ja to ne mogu dobit. Nasao sam funkciju EnumCapDrivers- (ili sto je vec) i opet ne mogu dobit ime kamere. Posto sam nov u ovim vodama, a ti mi djelujes iskusniji u ovim stvarima mozes li, molim te napisati jednostavni program tipa> -----Print CapturingSourceName--------- ili nesto slicno? Rekao si da to mogu dobit preko gornje funkcije pa to nebi trebalo bit problem(ja sam izuzetak).
Pokreni aplikaciju na koju si dobio link (btw, imas je i u attachmentu uz poruku). U options meniju treba da ti se pojavi lista svih devicea koje mozes da koristis za Capture. Aplikacija sluzi da ti prikaze listu svih raspolozivih devicea, da odaberes koji hoces i da radis capture sa selektovanim deviceom.
Potpis
Vec mi postaje neugodno. Da bude lakse neke stvari cu istaknuti.
Pa reko sam ti da bez PO FRKE mogu dobiti dijalog sa SVIM podatcima o sourceu (isto kao vbenumcapdrivers).
Ali meni treba funkcija koja ce ispisati SAMO ime sourcea! Primjeri su u pocetnom pitanju.
Isto sam ti tako rekao da se dizajn aplikacije NE SLAZE sa windowsima pa navedeni dijalog NE DOLAZI u obzir.
Jope
Pa reko sam ti da bez PO FRKE mogu dobiti dijalog sa SVIM podatcima o sourceu (isto kao vbenumcapdrivers).
Ali meni treba funkcija koja ce ispisati SAMO ime sourcea! Primjeri su u pocetnom pitanju.
Isto sam ti tako rekao da se dizajn aplikacije NE SLAZE sa windowsima pa navedeni dijalog NE DOLAZI u obzir.
Jope
Je l' dobijas sa capGetDriverDescriptionA ono sto ti treba ili ne?
Potpis
Po imenu mislim da je. Jel mi mozes napisat kako ga iskoristiti?
Znaci vracamo se na pocetak. Aplikacija na koju imas link u funkciji VBEnumCapDrivers koristi capGetDriverDescriptionA metod.
Potpis
Daj pliz!!! Samo je deklarirana u modulu. Nigdje se u programu zapravo ne koristi. Upisi pod |find| vbEnumCapDriversA i neces ga nigdje nac (osim u modulu, deklaraciji). Vidjet ces... Mene zanima kako je iskoristiti, posto primjera nema u programu! Na msdn-u sam bio 2 puta u zivotu, tako da nema svrhe da to trazim.
u funkciji VBEnumCapDrivers se koristi capGetDriverDescription
Code:
Public Function VBEnumCapDrivers(ByRef frm As frmMain) As Long
'/*
' * Enumerate the potential capture drivers and add the list to the Options
' * menu. This function is only called once at startup.
' * Returns 0 if no drivers are available.
' */
Const MAXVIDDRIVERS As Long = 9
Const CAP_STRING_MAX As Long = 128
Dim numDrivers As Long
Dim driverStrings(0 To MAXVIDDRIVERS - 1) As String
Dim Index As Long
Dim Device As String
Dim Version As String
Dim menu As VB.menu
Device = String$(CAP_STRING_MAX, 0)
Version = String$(CAP_STRING_MAX, 0)
numDrivers = 0
For Index = 0 To (MAXVIDDRIVERS - 1) Step 1
If 0 <> capGetDriverDescription(Index, _
Device, _
CAP_STRING_MAX, _
Version, _
CAP_STRING_MAX) _
Then
'extend the menu
If Index > 0 Then
Load frm.mnuDriver(Index)
End If
Set menu = frm.mnuDriver(Index) 'get an object pointer to the new menu
'Concatenate the device name and version strings to the new menu item
menu.Caption = left$(Device, InStr(Device, vbNullChar) - 1)
menu.Caption = menu.Caption & " "
menu.Caption = menu.Caption & left$(Version, InStr(Version, vbNullChar) - 1)
menu.Enabled = True
numDrivers = numDrivers + 1
End If
Next
VBEnumCapDrivers = numDrivers
End Function
Public Function VBEnumCapDrivers(ByRef frm As frmMain) As Long
'/*
' * Enumerate the potential capture drivers and add the list to the Options
' * menu. This function is only called once at startup.
' * Returns 0 if no drivers are available.
' */
Const MAXVIDDRIVERS As Long = 9
Const CAP_STRING_MAX As Long = 128
Dim numDrivers As Long
Dim driverStrings(0 To MAXVIDDRIVERS - 1) As String
Dim Index As Long
Dim Device As String
Dim Version As String
Dim menu As VB.menu
Device = String$(CAP_STRING_MAX, 0)
Version = String$(CAP_STRING_MAX, 0)
numDrivers = 0
For Index = 0 To (MAXVIDDRIVERS - 1) Step 1
If 0 <> capGetDriverDescription(Index, _
Device, _
CAP_STRING_MAX, _
Version, _
CAP_STRING_MAX) _
Then
'extend the menu
If Index > 0 Then
Load frm.mnuDriver(Index)
End If
Set menu = frm.mnuDriver(Index) 'get an object pointer to the new menu
'Concatenate the device name and version strings to the new menu item
menu.Caption = left$(Device, InStr(Device, vbNullChar) - 1)
menu.Caption = menu.Caption & " "
menu.Caption = menu.Caption & left$(Version, InStr(Version, vbNullChar) - 1)
menu.Enabled = True
numDrivers = numDrivers + 1
End If
Next
VBEnumCapDrivers = numDrivers
End Function
Potpis
Svejedno ne mogu dobit ime kamere. Jedino driver (microsoft wdm)
E onda ces morati nesto drugo da koristis za ovo. Verovatno sa WMI moze da se dobije informacija koja ti treba, potrazi na netu
Potpis
Probaj ovo
Code:
Public Function EnumUSBDevices(Optional strServer As String = ".")
Dim objsUSB
Dim objUSB
Set objsUSB = GetObject("winmgmts://" & strServer). _
ExecQuery("SELECT * FROM Win32_USBHub")
For Each objUSB In objsUSB
Debug.Print objUSB.Name, objUSB.Description, objUSB.DeviceID
Next objUSB
Set objsUSB = Nothing
End Function
Public Function EnumUSBDevices(Optional strServer As String = ".")
Dim objsUSB
Dim objUSB
Set objsUSB = GetObject("winmgmts://" & strServer). _
ExecQuery("SELECT * FROM Win32_USBHub")
For Each objUSB In objsUSB
Debug.Print objUSB.Name, objUSB.Description, objUSB.DeviceID
Next objUSB
Set objsUSB = Nothing
End Function
Potpis
Gle sto mi se javlja>
USB Root Hub USB Root Hub USB\ROOT_HUB\4&845673&0
|name| |description| |deviceID|
Jel mogu iz ovog dobit bas ime?
USB Root Hub USB Root Hub USB\ROOT_HUB\4&845673&0
|name| |description| |deviceID|
Jel mogu iz ovog dobit bas ime?
ja dobijam sve USB uredjaje na svojoj masini
Code:
USB Root Hub USB Root Hub USB\ROOT_HUB\4&182EC3C&0
USB Root Hub USB Root Hub USB\ROOT_HUB\4&E147424&0
USB Mass Storage Device USB Mass Storage Device USB\VID_0C76&PID_0005\5&C2A9964&0&2
Aladdin USB Key Aladdin USB Key USB\VID_0529&PID_0001\5&C2A9964&0&1
USB Root Hub USB Root Hub USB\ROOT_HUB\4&1611BE1&0
USB Root Hub USB Root Hub USB\ROOT_HUB\4&169BB4E2&0
USB Root Hub USB Root Hub USB\ROOT_HUB20\4&3583CF18&1
USB Root Hub USB Root Hub USB\ROOT_HUB\4&182EC3C&0
USB Root Hub USB Root Hub USB\ROOT_HUB\4&E147424&0
USB Mass Storage Device USB Mass Storage Device USB\VID_0C76&PID_0005\5&C2A9964&0&2
Aladdin USB Key Aladdin USB Key USB\VID_0529&PID_0001\5&C2A9964&0&1
USB Root Hub USB Root Hub USB\ROOT_HUB\4&1611BE1&0
USB Root Hub USB Root Hub USB\ROOT_HUB\4&169BB4E2&0
USB Root Hub USB Root Hub USB\ROOT_HUB20\4&3583CF18&1
Potpis
Pa i ja ih dobijem u takvim zapisima, reko sam ti. Ali meni treba ime uredjaja.