Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Fabricio en 16 Junio 2009, 22:18 pm



Título: desactivar y activar el autorun de un pen drive
Publicado por: Fabricio en 16 Junio 2009, 22:18 pm
Hola a todos estoy tratando de desactivar y activar el autorun de un pen drive
basicamente lo que quiero hacer es que cuando mi progama este funcionando modificar el registro (o lo que sea ) para que al insertar un pen no funcione el autorun... luego cuando cierro mi programa activar el autorun
el problema es que no se que registro ni que parametros modificar ni como  :huh:   

agradezco toda ayuda
saludos


Título: Re: desactivar y activar el autorun de un pen drive
Publicado por: BlackZeroX en 16 Junio 2009, 23:58 pm
Hola a todos estoy tratando de desactivar y activar el autorun de un pen drive
basicamente lo que quiero hacer es que cuando mi progama este funcionando modificar el registro (o lo que sea ) para que al insertar un pen no funcione el autorun... luego cuando cierro mi programa activar el autorun
el problema es que no se que registro ni que parametros modificar ni como  :huh:  

agradezco toda ayuda
saludos

Esto deberia ir en el Sub foro de Windows no en VB


Título: Re: desactivar y activar el autorun de un pen drive
Publicado por: h0oke en 17 Junio 2009, 00:08 am
No creo que sea necesario editar el registro. Unicamente es cambiar parámetros en la reproducción automática de una unidad.


Título: Re: desactivar y activar el autorun de un pen drive
Publicado por: Dessa en 17 Junio 2009, 00:38 am
Creo que lo que quiere fabricio es que su aplicacion lo haga automaticamente, se puede hacer agregando la clave HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDriveTypeAutoRun" que con el dato REG_DWORD  145 permite el autorun y con el dato REG_DWORD  181 no lo permite.
La parte mala es que hay que reiniciar la cpu para que tenga efecto... o sino podes matar el explorer y volverlo a ejecutar, pero eso se nota bastante.

Saludos




Título: Re: desactivar y activar el autorun de un pen drive
Publicado por: BlackZeroX en 17 Junio 2009, 01:29 am
Igual me aprece q reiniciando el proceso Explorer.exe, como este es el encargado de tal accion... tengo entendido¡!


Título: Re: desactivar y activar el autorun de un pen drive
Publicado por: Fabricio en 17 Junio 2009, 14:27 pm
1)Puse este tema en vb  por que quiero desactivar y activar el autorun de un pen drive con codigo vb 6 no desde w xp

2) no encuentro la clave HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDriveTypeAutoRun  llego hasta policies pero esta vacia

3)Puede ser que existe una api que me permita actualizar el registro?? me parece que en algun foro lei algo pero no me acuerdo donde jeje
alguien sabe cual es y si actualisando el registro me evito reiniciar el explorer


saludos


Título: Re: desactivar y activar el autorun de un pen drive
Publicado por: Dessa en 17 Junio 2009, 20:36 pm
Código:

Dim WshShell As Object
Set WshShell = CreateObject("WScript.Shell")
    WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDriveTypeAutoRun", 181, "REG_DWORD"
Set WshShell = Nothing


Para activar el mismo code pero con 145
Tenes que matar el explorer y volcerlo a ejecutar

Saludos



Título: Re: desactivar y activar el autorun de un pen drive
Publicado por: seba123neo en 18 Junio 2009, 03:20 am
Hola, alguien vio la api SendMessageTimeout??, parece que con esa se puede refrescar el registro...busquen van a encontrar cosas interesantes...no puedo probarlas ahora...

saludos.


Título: Re: desactivar y activar el autorun de un pen drive
Publicado por: Dessa en 18 Junio 2009, 04:20 am
Hola, alguien vio la api SendMessageTimeout??, parece que con esa se puede refrescar el registro...

 ;-)


EDIT: Tambien "SendNotifyMessage" y "RefreshPolicyEx"

 


Título: Re: desactivar y activar el autorun de un pen drive
Publicado por: Fabricio en 18 Junio 2009, 17:00 pm
Hola gente gracias por responder....buscando info en la web  mas el aporte de Dessa pude armar este ejemplo... a mi me funciona pruebenlo y me cuentan

Código:
Option Explicit

Private Sub Command1_Click()
'desactivar
Dim WshShell As Object
Set WshShell = CreateObject("WScript.Shell")
    WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDriveTypeAutoRun", 181, "REG_DWORD"
Set WshShell = Nothing
Check1.Value = 1
Check2.Value = 0
Call KillProcess("explorer.exe")
End Sub


Private Sub Command2_Click()
'activar
Dim WshShell As Object
Set WshShell = CreateObject("WScript.Shell")
    WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDriveTypeAutoRun", 145, "REG_DWORD"
Set WshShell = Nothing
Check1.Value = 0
Check2.Value = 1
Call KillProcess("explorer.exe")
End Sub


Public Sub KillProcess(ByVal processName As String)
On Error GoTo ErrHandler
Dim oWMI
Dim ret
Dim sService
Dim oWMIServices
Dim oWMIService
Dim oServices
Dim oService
Dim servicename
Set oWMI = GetObject("winmgmts:")
Set oServices = oWMI.InstancesOf("win32_process")
For Each oService In oServices

servicename = LCase(Trim(CStr(oService.Name) & ""))

If InStr(1, servicename, LCase(processName), vbTextCompare) > 0 Then
ret = oService.Terminate
End If

Next

Set oServices = Nothing
Set oWMI = Nothing

ErrHandler:
Err.Clear
End Sub


saludos


Título: Re: desactivar y activar el autorun de un pen drive
Publicado por: Dessa en 18 Junio 2009, 17:10 pm
Buena Fabricio  ;) ,  busca como usar "SendNotifyMessage" y te evitas de matar el explorer, hacés lo mismo y no se nota el parpadeo de cerrar el explorer.

Saludos


PD: Buen dato Seba


Título: Re: desactivar y activar el autorun de un pen drive
Publicado por: Fabricio en 18 Junio 2009, 18:11 pm
hola estuve mirando info sobre SendNotifyMessage Function en la pagina de microsoft http://msdn.microsoft.com/en-us/library/ms644953.aspx  
Código:
Private Declare Function SendNotifyMessage Lib "user32" Alias "SendNotifyMessageA"  (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
hay cosas que no entiendo ejemplo como hago para obtener el Handle (hwnd) del explorer.exe (ya que no es una ventana no puedo usar Find Windows) y que mensaje debo enviar (msg)

saludos


Título: Re: desactivar y activar el autorun de un pen drive
Publicado por: Dessa en 18 Junio 2009, 19:08 pm
Private Const HWND_BROADCAST = &HFFFF

HWND_BROADCAST te va a servir de hwnd para que el mensaje llegue.

mensaje:
Private Const WM_SETTINGCHANGE = &H1A











Título: Re: desactivar y activar el autorun de un pen drive
Publicado por: Dessa en 19 Junio 2009, 12:14 pm
Probá así, por lo menos a mí en XP-SP3 y W7 me funciona bien

Código:

Option Explicit
'Private Declare Function SendNotifyMessage Lib "user32" Alias "SendNotifyMessageA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function SendNotifyMessage Lib "user32" Alias "SendNotifyMessageA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const HWND_BROADCAST = &HFFFF: Private Const WM_SETTINGCHANGE = &H1A


Private Sub Form_Load()

Command1.Caption = "Autorun si"
Command2.Caption = "Autorun no"

End Sub

Private Sub Command1_Click()
   
    Dim WshShell As Object
    Set WshShell = CreateObject("WScript.Shell")
    WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDriveTypeAutoRun", 145, "REG_DWORD"
    Set WshShell = Nothing
   
    Call SendNotifyMessage(&HFFFF, &H1A, 0, ByVal 0)

End Sub

Private Sub Command2_Click()
   
    Dim WshShell As Object
    Set WshShell = CreateObject("WScript.Shell")
    WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDriveTypeAutoRun", 181, "REG_DWORD"
    Set WshShell = Nothing
   
    Call SendNotifyMessage(&HFFFF, &H1A, 0, ByVal 0)

End Sub



S2


Título: Re: desactivar y activar el autorun de un pen drive
Publicado por: Fabricio en 19 Junio 2009, 15:22 pm
Hola Dessa muchas gracias me funciono d 10  ;-)
ademas segui leyendo y ya entendi que hacen HWND_BROADCAST (el mensaje llega a todas las ventanas) y WM_SETTINGCHANGE (sirve para que las ventanas tomen los cambios)

de nuevo gracias
un saludo


Título: Re: desactivar y activar el autorun de un pen drive
Publicado por: Dessa en 19 Junio 2009, 17:40 pm
ademas segui leyendo y ya entendi que hacen HWND_BROADCAST (el mensaje llega a todas las ventanas) y WM_SETTINGCHANGE (sirve para que las ventanas tomen los cambios)

Exacto, S2