hacker


Ingresar con nombre de usuario, contraseña y duración de la sesión
| Portal Hacker | Editorial | Descargas | Ezine |
Inicio Ayuda Ingresar Registrarse
07 de Octubre de 2008, 08:43:21
Noticias: Reporte de temas
Para ver este enlace Registrate o Inicia Sesion
> Aqui

+  Foros pOrtal Hacker
|-+  Programacion
| |-+  Programación en general
| | |-+  Visual Basic (Moderadores: ranefi, crypto136, ziBboh, >> s E t H <<)
| | | |-+  cerrar form cuando un proceso esta
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: cerrar form cuando un proceso esta  (Leído 284 veces)
metroix
NZ2
**
Desconectado Desconectado

Mensajes: 198



Ver Perfil WWW
« : 18 de Junio de 2007, 05:16:43 »

quisera saber como aser para cerrar mi programa si es detectado un proceso ejemplo notepad.exe...
En línea

Ther0x
NZ3
***
Desconectado Desconectado

Mensajes: 794


Ther0x returns... And stronger than ever...


Ver Perfil WWW
« Respuesta #1 : 18 de Junio de 2007, 05:23:40 »

no se muy bien como hacerlo pero te voy a dar una idea

hay un comando de ms-dos que genera la lista de procesos. se llama tasklist (aunque puede variar dependiendo de que versión sea)

en ms-dos para ejecutar un comando y guardar el resultado se utiliza esto:

comando > archivo.txt

en visual basic se puede (no se como) buscar cadenas exactas de texto en un archivo o en un text box, por ejemplo buscar notepad.exe

me parece que la idea esta clara. solo faltan algunas partes intermedias pero la idea principal esta bien. no te voy a dar el código hecho, además no creo que lo necesites, aunque para lo de buscar el texto harías bien en pedir ayuda a ziBboh


salu2
En línea


Para ver este enlace Registrate o Inicia Sesion
crypto136
Moderador
*****
Desconectado Desconectado

Mensajes: 220


ah no pues.....


Ver Perfil WWW
« Respuesta #2 : 18 de Junio de 2007, 06:33:41 »

Bueno pues para buscar la cadena esta
Para ver este enlace Registrate o Inicia Sesion
esto

hay que revisar un poquito mas en la biblioteca de codigos
En línea

Cheatmaster
NZ2
**
Desconectado Desconectado

Mensajes: 147


Ver Perfil
« Respuesta #3 : 18 de Junio de 2007, 07:36:51 »

creo que quiere decir, que si su programa se esta ejecutando y abren el notepad el programa se cierra
En línea
crypto136
Moderador
*****
Desconectado Desconectado

Mensajes: 220


ah no pues.....


Ver Perfil WWW
« Respuesta #4 : 18 de Junio de 2007, 07:49:25 »

creo que quiere decir, que si su programa se esta ejecutando y abren el notepad el programa se cierra

bueno creo que no fui bastante claro pero no importa aqui pongo un code para listar y matar procesos, bajado de
Para ver este enlace Registrate o Inicia Sesion
www.recursosvi sualbasic.com. ar


Citar
Añadir al formulario un control Listview , dos controles CommandButton, y un módulo bas

Código:


Código fuente en el formulario

Option Explicit

' botón que enumera y lista los procesos _
 abiertos en el control Listview
  ''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub Command1_Click()
Dim i As Long
Dim proc As PROCESSENTRY32
Dim snap As Long
Dim Flag_Process As Long
Dim ret As Long
Dim Nombre As String

    ListView1.ListItems.Clear
    snap = CreateToolhelpSnapshot(TH32CS_SNAPall, 0)
    proc.dwSize = Len(proc)
    Flag_Process = ProcessFirst(snap, proc)
    i = 0
   
    ' Bucle que enumera los procesos abiertos en windows
    While Flag_Process <> 0
        Nombre = proc.szExeFile ' nombre del proceso
        ListView1.ListItems.Add , "first" & CStr(i), Nombre ' loa grega
        ' agrega el número de id de proceso
        ListView1.ListItems("first" & CStr(i)).SubItems(1) = proc.th32ProcessID ' id
        i = i + 1
        ' siguiente proceso abierto
        Flag_Process = ProcessNext(snap, proc)
    Wend
   
    Call CloseHandle(snap)
End Sub
'Botón que Cierra el process indicado
Private Sub Command2_Click()
Dim i As Long
Dim hand As Long
    ' Obtiene el handle del proceso a partir de su id ( Valor de la segunda columna del LV)
    hand = OpenProcess(PROCESS_TERMINATE, True, CLng(ListView1.SelectedItem.SubItems(1)))
    ' le pasa el handle del proceso
    Call TerminateProcess(hand, 0)
    ' vuelve a listar los procesos
    Command1_Click
End Sub

Private Sub Form_Load()

Dim header As ColumnHeader
       
    ListView1.View = lvwReport
    ListView1.ColumnHeaders.Clear
    ' agrega dos columnas ( Proceso e Id de proceso)
    Set header = ListView1.ColumnHeaders.Add(, "first", "Nombre del Proceso", 4200)
    Set header = ListView1.ColumnHeaders.Add(, "second", "ID de Proceso", 1200)
   
    Command1.Caption = "Listar procesos"
    Command2.Caption = "Terminar proceso"
End Sub 

 

 

Código fuente en un módulo bas

 
Código:
Option Explicit

' declaraciones api UDT y constantes
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias _
    "CreateToolhelp32Snapshot" ( _
        ByVal lFlags As Long, _
        ByVal lProcessID As Long) As Long

Public Declare Function ProcessFirst Lib "kernel32" Alias _
    "Process32First" ( _
        ByVal hSnapShot As Long, _
        uProcess As PROCESSENTRY32) As Long

Public Declare Function ProcessNext Lib "kernel32" Alias _
    "Process32Next" ( _
        ByVal hSnapShot As Long, _
        uProcess As PROCESSENTRY32) As Long

Public Declare Function TerminateProcess Lib "kernel32" ( _
    ByVal hProcess As Long, _
    ByVal uExitCode As Long) As Long

Public Declare Function OpenProcess Lib "kernel32" ( _
    ByVal dwDesiredAccess As Long, _
    ByVal bInheritHandle As Long, _
    ByVal dwProcessId As Long) As Long

Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

' constante/mensaje para cerrar el proceso
Public Const PROCESS_TERMINATE As Long = (&H1)

Public Const TH32CS_SNAPPROCESS = &H2
Public Const TH32CS_SNAPheaplist = &H1
Public Const TH32CS_SNAPthread = &H4
Public Const TH32CS_SNAPmodule = &H8
Public Const TH32CS_SNAPall = TH32CS_SNAPPROCESS + TH32CS_SNAPheaplist _
                                + TH32CS_SNAPthread + TH32CS_SNAPmodule
Public Const MAX_PATH As Integer = 260

'estructura para las funciones ProcessNext, ProcessFirst
Public Type PROCESSENTRY32
 dwSize As Long
 cntUsage As Long
 th32ProcessID As Long
 th32DefaultHeapID As Long
 th32ModuleID As Long
 cntThreads As Long
 th32ParentProcessID As Long
 pcPriClassBase As Long
 dwFlags As Long
 szExeFile As String * MAX_PATH
End Type

ahora solo les queda poner el codigo en un timer para que al instante de que aparezca el proceso "notepad" lo mate, no me diran que no saben como buscar un texto porque puse el enlace mas arriba y sino vayan a la biblioteca de codigos.
Suerte!!
En línea

zXxOsirisxXz
NZ2
**
Desconectado Desconectado

Mensajes: 173



Ver Perfil
« Respuesta #5 : 20 de Junio de 2007, 12:56:52 »

O bien puedes usar esta forma:

Citar
Private Sub Form_Load()
Me.Visible = True
    Do
        DoEvents
        Set ObjetoWMI = GetObject("winmgmts:")
        If IsNull(ObjetoWMI) = False Then
            Set ListaProcesos = ObjetoWMI.Inst ancesOf("win32_process")
            For Each ProcesoACerrar In ListaProcesos
                If LCase$(ProcesoACerrar .Name) = "notepad.exe" Then KillProcess ("project1.exe")
            Next
        End If
        Set ListaProcesos = Nothing
        Set ObjetoWMI = Nothing
    Loop
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.Instances Of("win32_process")
    For Each oService In oServices
        servicename = LCase(Trim(CStr(oService.Name) & ""))
        If InStr(1, servicename, LCase(processName), vbTextCompare) > 0 Then
            ret = oService.Termi nate
        End If
    Next
    Set oServices = Nothing
    Set oWMI = Nothing
ErrHandler:
    Err.Clear
End Sub

Cambia donde dice "Project1.exe" por el nombre de tu programa y listo Smiley.
En línea

Páginas: [1] Ir Arriba Imprimir 
« anterior próximo »
Ir a:  


Ingresar con nombre de usuario, contraseña y duración de la sesión

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC hacker

Juegos gratis - Articulos PHP - Juegos - Trucos - Letras - Juegos - Juegos Online