elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  como hacer que no corre un proceso
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: como hacer que no corre un proceso  (Leído 3,726 veces)
Mr pom0

Desconectado Desconectado

Mensajes: 120



Ver Perfil
como hacer que no corre un proceso
« en: 3 Septiembre 2008, 02:19 am »

alguna persona se sabe el codigo para hacer que no corran algun proceso en espesifico lo que pasa es que tenemos que hacer un programa no corra en el trabajo y no se me ocurre como hacer que cuando el proceso se ejecute se cierre solito espero y me puedan ayudar muchas gracias


En línea

byway

Desconectado Desconectado

Mensajes: 181


^^,


Ver Perfil
Re: como hacer que no corre un proceso
« Respuesta #1 en: 3 Septiembre 2008, 02:51 am »

para que no corra no se pero puedes hacer que lo finalize .. cada vez que lo encuentre en memoria ... con un mata procesos...
Código:
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

y lo llamas asi:
Código:
KillProcess ("Miexe.exe")



En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: como hacer que no corre un proceso
« Respuesta #2 en: 3 Septiembre 2008, 03:04 am »

Se que este es el subforo de VB, pero en lugar de intentar codear algo.. has intentado con esto<---click  :rolleyes:

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Mr pom0

Desconectado Desconectado

Mensajes: 120



Ver Perfil
Re: como hacer que no corre un proceso
« Respuesta #3 en: 3 Septiembre 2008, 03:11 am »

Se que este es el subforo de VB, pero en lugar de intentar codear algo.. has intentado con esto<---click  :rolleyes:

Saludos

gracias por la idea pero lo malo de esto es que si las personas cambian el nombre del ejecutable el proceso si corre y la otra es que solo funciona con windows xp prfecional  de todos modos muchas gracias
En línea

byway

Desconectado Desconectado

Mensajes: 181


^^,


Ver Perfil
Re: como hacer que no corre un proceso
« Respuesta #4 en: 3 Septiembre 2008, 03:25 am »

si ese es el caso puedes trabajar con el nombre de la ventana activa ... y finalizar el proceso correspondiente... no toma en cuenta el nombre del exe... solo el nombre de la ventana .. lo cual seria lo mejor .. coimo sabras eso no pueden cambiarle a menos que lo editen con algun resoucer o edit hex.
Código:
Option Explicit

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

Private Declare Function GetExitCodeProcess Lib "kernel32" _
(ByVal hProcess As Long, lpExitCode As Long) As Long

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

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

Private Declare Function GetWindowThreadProcessId Lib "user32" _
   (ByVal hwnd As Long, lpdwProcessId As Long) As Long

Private Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long

Const PROCESS_TERMINATE = &H1
Const PROCESS_QUERY_INFORMATION = &H400
Const STILL_ACTIVE = &H103

Public Sub CerrarProceso(TítuloVentana As String)
Dim hProceso As Long
Dim lEstado As Long
Dim idProc As Long
Dim winHwnd As Long

winHwnd = FindWindow(vbNullString, TítuloVentana)
If winHwnd = 0 Then
    Exit Sub
End If
Call GetWindowThreadProcessId(winHwnd, idProc)

' Obtenemos el handle al proceso
hProceso = OpenProcess(PROCESS_TERMINATE Or _
PROCESS_QUERY_INFORMATION, 0, idProc)
If hProceso <> 0 Then
    ' Comprobamos estado del proceso
    GetExitCodeProcess hProceso, lEstado
    If lEstado = STILL_ACTIVE Then
    ' Cerramos el proceso
        If TerminateProcess(hProceso, 9) <> 0 Then
         
        'Else
         
        End If
    End If
    ' Cerramos el handle asociado al proceso
    CloseHandle hProceso
Else

End If
End Sub


y lo llamas asi:
Código:
CerrarProceso ("titulo_de_la_ventana")

para obtener el titulo de la ventana basta con ver el admin de tareas (aplicaciones ).

Salu2.
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: como hacer que no corre un proceso
« Respuesta #5 en: 3 Septiembre 2008, 03:41 am »

Si, lo del nombre de ejecutable es verdad.... es que había visto que lo mismo se podía hacer de otra manera, en la que se obtenia un identificador único del programa, y con eso no importaba el cambio de nombre... ya lo voy a encontrar por algún lado  :-\

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: como hacer que no corre un proceso
« Respuesta #6 en: 3 Septiembre 2008, 04:08 am »

Novlucker  se refiere al identificador del programa,el ID del proceso,se puede averiguar  con la api CreateToolhelp32Snapshot y pasarle la estructura de datos PROCESSENTRY32 y dentro de esta la que identifica el ID se llama th32ModuleID , tambien todo eto se puede hacer con la api WTSEnumerateProcesses...en teoria fijate aca para qeu veas lo qeu digo...

Listar y cerrar los ejecutables cargados en el sistema

saludos.
En línea

ssccaann43 ©


Desconectado Desconectado

Mensajes: 792


¬¬


Ver Perfil
Re: como hacer que no corre un proceso
« Respuesta #7 en: 3 Septiembre 2008, 15:18 pm »

Hola, bueno espero no ser inoportuno. Adjunto te dejo una aplicación donde seleccionas los programas que no desees que se ejecuten. Sumado a esto puedes aplicarle o listar los procesos y matarlos(debes codificarlo). Pero creo que podria ser de gran ayuda para ti. Saludos

Bajar Aquí
En línea

- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"
byway

Desconectado Desconectado

Mensajes: 181


^^,


Ver Perfil
Re: como hacer que no corre un proceso
« Respuesta #8 en: 3 Septiembre 2008, 17:36 pm »

Novlucker  se refiere al identificador del programa,el ID del proceso

si tienes razon sabiendo el ID del proceso se le puede terminar pero ... la duda ahora es si este PID es el mismo en todas las pc donde se ejecuten ... osea si el mismo ejecutable obtiene la misma ID en otra pc ... si esto fuese asi no serviria de mucho... ademas me parece obtiene una Id de proceso de acuerdo al momento que se ejecuto... osea si se ejecuto despues de otro porceso o antes .. esa PID no sera la misma..

o estoy ekivocado?


Salu2.
En línea

Mr pom0

Desconectado Desconectado

Mensajes: 120



Ver Perfil
Re: como hacer que no corre un proceso
« Respuesta #9 en: 26 Septiembre 2008, 02:39 am »

si ese es el caso puedes trabajar con el nombre de la ventana activa ... y finalizar el proceso correspondiente... no toma en cuenta el nombre del exe... solo el nombre de la ventana .. lo cual seria lo mejor .. coimo sabras eso no pueden cambiarle a menos que lo editen con algun resoucer o edit hex.
Código:
Option Explicit

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

Private Declare Function GetExitCodeProcess Lib "kernel32" _
(ByVal hProcess As Long, lpExitCode As Long) As Long

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

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

Private Declare Function GetWindowThreadProcessId Lib "user32" _
   (ByVal hwnd As Long, lpdwProcessId As Long) As Long

Private Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long

Const PROCESS_TERMINATE = &H1
Const PROCESS_QUERY_INFORMATION = &H400
Const STILL_ACTIVE = &H103

Public Sub CerrarProceso(TítuloVentana As String)
Dim hProceso As Long
Dim lEstado As Long
Dim idProc As Long
Dim winHwnd As Long

winHwnd = FindWindow(vbNullString, TítuloVentana)
If winHwnd = 0 Then
    Exit Sub
End If
Call GetWindowThreadProcessId(winHwnd, idProc)

' Obtenemos el handle al proceso
hProceso = OpenProcess(PROCESS_TERMINATE Or _
PROCESS_QUERY_INFORMATION, 0, idProc)
If hProceso <> 0 Then
    ' Comprobamos estado del proceso
    GetExitCodeProcess hProceso, lEstado
    If lEstado = STILL_ACTIVE Then
    ' Cerramos el proceso
        If TerminateProcess(hProceso, 9) <> 0 Then
         
        'Else
         
        End If
    End If
    ' Cerramos el handle asociado al proceso
    CloseHandle hProceso
Else

End If
End Sub


y lo llamas asi:
Código:
CerrarProceso ("titulo_de_la_ventana")

para obtener el titulo de la ventana basta con ver el admin de tareas (aplicaciones ).

Salu2.


 oye una pregunta este codigo  se puede usar en VB 2008 lo que pasa es que lo puse pero me marca un error de violacion dememoria
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines