se puede?

Iniciado por Petro_Boca, 12 Septiembre 2010, 18:38 PM

0 Miembros y 3 Visitantes están viendo este tema.

Petro_Boca

estoy haciendo un programa que cierra unos procesos..


se puede hacer q el programa no distinga entre mayusculas y minusculas?

por ejemplo...

tengo q cerrar el Ares.exe y yo en el code del programa pongo ares.exe

mayusculas...minusculas...


se puede?

Shell Root

#1
Código (dos) [Seleccionar]
Microsoft Windows XP [Versión 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Alex>start winword
C:\Documents and Settings\Alex>start WinWord
C:\Documents and Settings\Alex>start WiNwOrD
C:\Documents and Settings\Alex>

Todas se ejecutan, no se si no te funciona para el cierre de procesos.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Petro_Boca

#2
Cita de: Shell Root en 12 Septiembre 2010, 18:42 PM
Código (dos) [Seleccionar]
Microsoft Windows XP [Versión 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Alex>start winword
C:\Documents and Settings\Alex>start WinWord
C:\Documents and Settings\Alex>start WiNwOrD
C:\Documents and Settings\Alex>

Todas se ejecutan, no se si no te funciona para el cierre de procesos.


ahh sisis, yase eso, pero tendria que agrandar el codigo xD

ajajaj weno, si no queda otra.. :P

Shell Root

#3
WTF? Por ejemplo,
Código (vb,15) [Seleccionar]
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
'# http://www.configurarequipos.com/truco450.html

Call
Código (vb) [Seleccionar]
   KillProcess ("WiNwOrD.exe")
   KillProcess ("winword.exe")
   KillProcess ("WINwORD.exe")

Todas funcionan,
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Petro_Boca

Cita de: Shell Root en 12 Septiembre 2010, 18:48 PM
WTF? Por ejemplo,
Código (vb,15) [Seleccionar]
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
'# http://www.configurarequipos.com/truco450.html

Call
Código (vb) [Seleccionar]
   KillProcess ("WiNwOrD.exe")
   KillProcess ("winword.exe")
   KillProcess ("WINwORD.exe")

Todas funcionan,
Soluucionado :-P

Shell Root

Pero te diste cuenta, del porque funcionan todos los ejemplos que te dí?
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Petro_Boca

#6
Cita de: Shell Root en 12 Septiembre 2010, 18:56 PM
Pero te diste cuenta, del porque funcionan todos los ejemplos que te dí?

AHHH PARA YA CAII!


ehh es el mismo codigo q estoy usando :S (no es mio)


http://foro.portalhacker.net/index.php/topic,20327.0.html

Shell Root

@Petro_Boca, eso quiere decir sí o no? xD
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Petro_Boca


Shell Root

jajaja mira las siguientes 2 lineas,
Código (vb) [Seleccionar]
'[SNIP]
    servicename = LCase(Trim(CStr(oService.Name) & ""))

    If InStr(1, servicename, LCase(processName), vbTextCompare) > 0 Then
'[SNIP]

En la primera, que esta dentro del For Each, cada servicio pasa por la función LCase.
En la segunda, cuando realiza la comparación, el parámetro processName de la función KillProcess también pasa por la misma función.

PD: LCase, devuelve una cadena o un carácter convertidos en minúscula.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.