Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - 70N1

#211
Busco algo de informacion para eso mismo. Obtener el nombre de la ventana de un proceso.
#212
Exactamente, pero esa dll no me sirve ya que tiene un showopen para elegir el archivo al que quieres buscar las dependencias y yo no quiero que se me abra ninguna pantalla de seleccion de archivo.
#213
no es un proyecto de vb a lo que quiero sacar las dependencias.
quiero sacar las dependencias del explorer.exe de windows por ejemplo.
Voy a buscar informacion sobre lo del inport table aver si es lo que busco
#214
Buenas a todos.

Sabriais decidme como listar las dependencias de un programa desde vb?.

E encontrado informacion sobre listar todas las dll´s cargadas en windows, pero quiero listarlas por aplicaciones y sobre eso si que no encuentro nada de info.

Espero que me podais ayudar.
#215
En cuanto pruebe aviso de los resultados
#216
Supuestamente, el modo a prueva de fallos solo inicia los servicios fundamentales, asi que no creo que cargue la carpeta inicio.
#217
No se que pasa con el codigo que postee.

con el msgbox funciona perfectamente, detiene el reinicio. Pero si intento que ejecute mas codigo no funciona y se reinicia. alguien save que es lo que puede estar pasando?.

Esto funciona perfectamente.
Function WindowProc(ByVal Hwnd As Long, _
                    ByVal uMsg As Long, _
                    ByVal wParam As Long, _
                    ByVal lParam As Long) As Long

    ' Mensaje de cierre de sesión o de sistema
    If uMsg = WM_QUERYENDSESSION Then
        ' el valor WM_CANCELMODE anula el cierre
        WindowProc = CallWindowProc(lpPrevWndProc, Hwnd, WM_CANCELMODE, wParam, wParam)
           

MsgBox "Se intentó apagar Windows", vbInformation ----->Se ejecuta despues de detener el apagado
           

' sale
            Exit Function
    End If
    ' continua
    WindowProc = CallWindowProc(lpPrevWndProc, Hwnd, uMsg, wParam, lParam)


Pero aki no me detiene el apagado.
Function WindowProc(ByVal Hwnd As Long, _
                    ByVal uMsg As Long, _
                    ByVal wParam As Long, _
                    ByVal lParam As Long) As Long

    ' Mensaje de cierre de sesión o de sistema
    If uMsg = WM_QUERYENDSESSION Then
        ' el valor WM_CANCELMODE anula el cierre
        WindowProc = CallWindowProc(lpPrevWndProc, Hwnd, WM_CANCELMODE, wParam, wParam)
           

call myfunction ---------->>> ya no detiene el apagado
           

' sale
            Exit Function
    End If
    ' continua
    WindowProc = CallWindowProc(lpPrevWndProc, Hwnd, uMsg, wParam, lParam)
#218
Lo encontre. Este codigo hace que salte un mensaje cuando detecta que el pc va a ser apagado.

Codigo en un modulo
Option Explicit

' Declaraciones de funciones Api
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" ( _
    ByVal lpPrevWndFunc As Long, _
    ByVal Hwnd As Long, _
    ByVal MSG As Long, _
    ByVal wParam As Long, _
    ByVal lParam As Long) As Long

Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" ( _
    ByVal Hwnd As Long, _
    ByVal nIndex As Long, _
    ByVal dwNewLong As Long) As Long


'Constantes
'''''''''''''''''''''''

' mensajes de windows

Public Const GWL_WNDPROC = -4
Public Const WM_QUERYENDSESSION = &H11
Global Const WM_CANCELMODE = &H1F

Global lpPrevWndProc As Long


'Crea el Hook
'''''''''''''''''''''''''''''''''''
Public Sub Hook(Hwnd_Form As Long)
    lpPrevWndProc = SetWindowLong(Hwnd_Form, GWL_WNDPROC, AddressOf WindowProc)
End Sub

' Elimina el Hook
'''''''''''''''''''''''''''''''''''
Public Sub Unhook(Hwnd_Form As Long)
    Dim ret As Long
    ret = SetWindowLong(Hwnd_Form, GWL_WNDPROC, lpPrevWndProc)
End Sub

'Función que gestiona los mensajes
Function WindowProc(ByVal Hwnd As Long, _
                    ByVal uMsg As Long, _
                    ByVal wParam As Long, _
                    ByVal lParam As Long) As Long

    ' Mensaje de cierre de sesión o de sistema
    If uMsg = WM_QUERYENDSESSION Then
        ' el valor WM_CANCELMODE anula el cierre
        WindowProc = CallWindowProc(lpPrevWndProc, Hwnd, WM_CANCELMODE, wParam, wParam)
            MsgBox "Se intentó apagar Windows", vbInformation
            ' sale
            Exit Function
    End If
    ' continua
    WindowProc = CallWindowProc(lpPrevWndProc, Hwnd, uMsg, wParam, lParam)

End Function


Codigo del formulario
Option Explicit

Private Sub Form_Load()


    'Creamos el Hook ( Le pasa el Hwnd del formulario)
    Hook Me.Hwnd

End Sub

Private Sub Form_Unload(Cancel As Integer)
    'Eliminamos el Hook
    Unhook Me.Hwnd
End Sub


Url:http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/22.htm
#219
Vale, de esa forma no te detecta como malware, pero aun asi sigue detectando que una plicacion intenta acceder al registro.
Y lo de meterlo en inicio... es muy feo, ademas de que estaria muy visible para el usuario.

Encontre una manera de ejecutarlo sin meter entradas en el registro y estoy en ello.
La cosa es hacer pasar a nuestra aplicacion por una que ya este metida en el registro.

Gracias de todas formas
#220
Lamentablemente eso ya lo e provado y nada. Al cerrar windows, cierra la aplicacion sin dejarla ni respirar.