Título: Esposible o muere en el intento Publicado por: kakinets en 30 Septiembre 2005, 02:58 am hola yo quiero saber si esto es posible o solo me ago ilusiones
Lo q yo quiero hacer es lo siguiente... Manejar un puerto usb por VB....No como por librerias no tengo idea.... Lo q yo quiero hacer es cortar la energia de un usb y bolberla adtivar... Para q es esto: Lo que yo tengo en la mente por ahora es un ventilado q se ensiende por un programa en VB y se apaga....Este va conectado a un usb en donde corta y activa la energia....Un esjemplo simple es los parlante de sonido nuevos se alimenta de corriente por los usb pero esa corriente esta constantemente activada.... Bueno espero q me allan entendido... gracias a Todos KakiNets Título: Re: Esposible o muere en el intento Publicado por: Gangrel en 30 Septiembre 2005, 21:58 pm Je visial basic es un lenguaje de alto nivel y no tiene acceso al puerto USB, un lenguaje que te podria ayudar con eso es C++ e interrupciones ASM, con eso podrias lograrlo, ya que ensamblador es un lenguaje de muy bajo nivel.
Título: Re: Esposible o muere en el intento Publicado por: Kizar en 1 Octubre 2005, 01:15 am En ASM se puede hacer todo!!! , pero es muy dificil de programar en comparacion con otros lenguajes como VB
Título: Re: Esposible o muere en el intento Publicado por: NYlOn en 1 Octubre 2005, 01:21 am En mi opinion,
desde VB, cerrar los puertos USB, es, IMPOSIBLE (no te quiero tirar abajo xD) a menos que se recurra a alguna DLL u OCX, que hasta el momento no he visto asike, a buscar :P Título: Re: Esposible o muere en el intento Publicado por: kakinets en 1 Octubre 2005, 03:16 am Entondes el Visual Basic lo decarto...
En q lenguaje lo podria hacer...Un amigo me recondo en Direc X Título: Re: Esposible o muere en el intento Publicado por: _Sergi_ en 1 Octubre 2005, 22:16 pm Si se puede hacer en VB. Aqui tienes un code, no se realmente para que es pero el caso es que usa el puerto USB y es en VB... si consigues entenderlo o adaptarlo a tu programa, habras resuelto tu problema. Este código NO es mio y tan solo es orientativo, ya que como he dicho no estoy seguro de su funcionamiento rea
En un modulo Código: Public Declare Function CloseHandle Lib "kernel32" ( _ ByVal hObject As Long) As Long Public Declare Function DeviceIoControl Lib "kernel32" ( _ ByVal hDevice As Long, _ ByVal dwIoControlCode As Long, _ lpInBuffer As Any, _ ByVal nInBufferSize As Long, _ lpOutBuffer As Any, _ ByVal nOutBufferSize As Long, _ lpBytesReturned As Long, _ lpOverlapped As OVERLAPPED) As Long Public Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" ( _ ByVal lpFileName As String, _ ByVal dwDesiredAccess As Long, _ ByVal dwShareMode As Long, _ lpSecurityAttributes As SECURITY_ATTRIBUTES, _ ByVal dwCreationDisposition As Long, _ ByVal dwFlagsAndAttributes As Long, _ ByVal hTemplateFile As Long) As Long ' WINAPI - Typen Public Type USBName USBLenght As Long GUID(256) As Byte End Type Public Type OVERLAPPED ternal As Long ternalHigh As Long offset As Long OffsetHigh As Long hEvent As Long End Type Public Type SECURITY_ATTRIBUTES nLength As Long lpSecurityDescriptor As Long bInheritHandle As Long End Type ' WINAPI - Valores de las constantes Public Const OPEN_EXISTING = 3 Public Const GENERIC_READ = &H80000000 Public Const GENERIC_WRITE = &H40000000 Public Const FILE_SHARE_READ = &H1 Public Const FILE_SHARE_WRITE = &H2 En un formulario (para probarlo) Código: Private Const USB_ROOT_HUB = &H220408 Private Const USB_HOSTCONTROLLER = &H220424 Private Sub Form_Load() Dim hFile As Long Dim sHostName As String Dim Sa As SECURITY_ATTRIBUTES Dim ov As OVERLAPPED Dim i As Long Dim ii As Long Dim nFlags As Long Dim nShare As Long Dim USB As USBName Dim RetByte As Long Dim rVal As Long nFlags = GENERIC_READ Or GENERIC_WRITE nShare = FILE_SHARE_READ Or FILE_SHARE_WRITE For i = 0 To 3 sHostName = "\\.\HCD" & CStr(i) hFile = CreateFile(sHostName, nFlags, nShare, Sa, OPEN_EXISTING, 0, 0) If hFile > 0 Then sHostName = "" If DeviceIoControl(hFile, USB_ROOT_HUB, 0, 0, USB, Len(USB), RetByte, ov) Then rVal = DeviceIoControl(hFile, USB_ROOT_HUB, USB, USB.USBLenght, USB, USB.USBLenght, RetByte, ov) If rVal Then For ii = 0 To RetByte Step 2 sHostName = sHostName + Chr(USB.GUID(ii)) Next MsgBox sHostName End If End If CloseHandle hFile End If Next End Sub Título: Re: Esposible o muere en el intento Publicado por: programatrix en 1 Octubre 2005, 22:21 pm Vb no tiene limitaciones, a no ser que sea algu muy bajo a nivel sistema como parámetros de memoria, manipular exe, cluseter etc...
Para todo lo demás están las apis de widnows ::) Título: Re: Esposible o muere en el intento Publicado por: kakinets en 1 Octubre 2005, 23:44 pm Y como saber como se llama cada api y darle un funsionamientos...És decir como se cual es la api q sirve para los USB....O demas
Espero q me allan entendido Título: Re: Esposible o muere en el intento Publicado por: Thaorius en 2 Octubre 2005, 00:57 am ::) www.google.com ::)
Título: Re: Esposible o muere en el intento Publicado por: Slasher-K en 2 Octubre 2005, 07:48 am Vb no tiene limitaciones, a no ser que sea algu muy bajo a nivel sistema como parámetros de memoria, manipular exe, cluseter etc... Para todo lo demás están las apis de widnows ::) Eso si se puede hacer y sin mucho lío, es más fácil que usar el USB porque DeviceIoControl se comunica directamente con los controladores. pedronets: hay formas y formas de preguntar las cosas, luego si no te responden no te quejes. Título: Re: Esposible o muere en el intento Publicado por: NYlOn en 2 Octubre 2005, 09:32 am :o
todos los dias se aprende algo nuevo... xD no tenia idea de q esto se podia hacer ;D salu2 Título: Re: Esposible o muere en el intento Publicado por: kakinets en 2 Octubre 2005, 23:47 pm ok gracias entonces saco como conclusion q debo buscr una api de Windows para poder logar cortar y vover a iniciar la energia q trasmite un USB...
gracias |