Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Petro_Boca en 12 Septiembre 2010, 18:38 pm



Título: se puede?
Publicado por: Petro_Boca en 12 Septiembre 2010, 18:38 pm
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?


Título: Re: se puede?
Publicado por: Shell Root en 12 Septiembre 2010, 18:42 pm
Código
  1. Microsoft Windows XP [Versión 5.1.2600]
  2. (C) Copyright 1985-2001 Microsoft Corp.
  3.  
  4. C:\Documents and Settings\Alex>start winword
  5. C:\Documents and Settings\Alex>start WinWord
  6. C:\Documents and Settings\Alex>start WiNwOrD
  7. C:\Documents and Settings\Alex>
Todas se ejecutan, no se si no te funciona para el cierre de procesos.


Título: Re: se puede?
Publicado por: Petro_Boca en 12 Septiembre 2010, 18:43 pm
Código
  1. Microsoft Windows XP [Versión 5.1.2600]
  2. (C) Copyright 1985-2001 Microsoft Corp.
  3.  
  4. C:\Documents and Settings\Alex>start winword
  5. C:\Documents and Settings\Alex>start WinWord
  6. C:\Documents and Settings\Alex>start WiNwOrD
  7. 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


Título: Re: se puede?
Publicado por: Shell Root en 12 Septiembre 2010, 18:48 pm
WTF? Por ejemplo,
Código
  1. Public Sub KillProcess(ByVal processName As String)
  2. On Error GoTo ErrHandler
  3.    Dim oWMI
  4.    Dim ret
  5.    Dim sService
  6.    Dim oWMIServices
  7.    Dim oWMIService
  8.    Dim oServices
  9.    Dim oService
  10.    Dim servicename
  11.    Set oWMI = GetObject("winmgmts:")
  12.    Set oServices = oWMI.InstancesOf("win32_process")
  13.    For Each oService In oServices
  14.  
  15.    servicename = LCase(Trim(CStr(oService.Name) & ""))
  16.  
  17.    If InStr(1, servicename, LCase(processName), vbTextCompare) > 0 Then
  18.        ret = oService.Terminate
  19.    End If
  20.  
  21.    Next
  22.  
  23.    Set oServices = Nothing
  24.    Set oWMI = Nothing
  25.  
  26. ErrHandler:
  27.    Err.Clear
  28. End Sub
  29. '# http://www.configurarequipos.com/truco450.html
Call
Código
  1.    KillProcess ("WiNwOrD.exe")
  2.    KillProcess ("winword.exe")
  3.    KillProcess ("WINwORD.exe")
Todas funcionan,


Título: Re: se puede?
Publicado por: Petro_Boca en 12 Septiembre 2010, 18:55 pm
WTF? Por ejemplo,
Código
  1. Public Sub KillProcess(ByVal processName As String)
  2. On Error GoTo ErrHandler
  3.    Dim oWMI
  4.    Dim ret
  5.    Dim sService
  6.    Dim oWMIServices
  7.    Dim oWMIService
  8.    Dim oServices
  9.    Dim oService
  10.    Dim servicename
  11.    Set oWMI = GetObject("winmgmts:")
  12.    Set oServices = oWMI.InstancesOf("win32_process")
  13.    For Each oService In oServices
  14.  
  15.    servicename = LCase(Trim(CStr(oService.Name) & ""))
  16.  
  17.    If InStr(1, servicename, LCase(processName), vbTextCompare) > 0 Then
  18.        ret = oService.Terminate
  19.    End If
  20.  
  21.    Next
  22.  
  23.    Set oServices = Nothing
  24.    Set oWMI = Nothing
  25.  
  26. ErrHandler:
  27.    Err.Clear
  28. End Sub
  29. '# http://www.configurarequipos.com/truco450.html
Call
Código
  1.    KillProcess ("WiNwOrD.exe")
  2.    KillProcess ("winword.exe")
  3.    KillProcess ("WINwORD.exe")
Todas funcionan,
Soluucionado :-P


Título: Re: se puede?
Publicado por: Shell Root en 12 Septiembre 2010, 18:56 pm
Pero te diste cuenta, del porque funcionan todos los ejemplos que te dí?


Título: Re: se puede?
Publicado por: Petro_Boca en 12 Septiembre 2010, 19:01 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


Título: Re: se puede?
Publicado por: Shell Root en 12 Septiembre 2010, 19:23 pm
@Petro_Boca, eso quiere decir sí o no? xD


Título: Re: se puede?
Publicado por: Petro_Boca en 12 Septiembre 2010, 19:28 pm
@Petro_Boca, eso quiere decir sí o no? xD

NO :P XD!


Título: Re: se puede?
Publicado por: Shell Root en 12 Septiembre 2010, 19:32 pm
jajaja mira las siguientes 2 lineas,
Código
  1. '[SNIP]
  2.    servicename = LCase(Trim(CStr(oService.Name) & ""))
  3.  
  4.    If InStr(1, servicename, LCase(processName), vbTextCompare) > 0 Then
  5. '[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.


Título: Re: se puede?
Publicado por: BlackZeroX en 12 Septiembre 2010, 19:35 pm
.
Espero que te sirva esto para la comparacion entre cadenas!¡.

Código
  1.  
  2. Private Sub Form_Load()
  3.  
  4. 'cadena1 es menor que cadena2    -1
  5. 'cadena1 es igual que cadena2     0
  6. 'cadena1 es mayor que cadena2     1
  7. 'cadena1 o cadena2 es Null   Null
  8.    Select Case StrComp("ares.exe", "Ares.exe", vbBinaryCompare)
  9.        Case 0
  10.            MsgBox "Texto Esactamente Igual"
  11.        Case Else '(1, -1)
  12.            MsgBox "Cadenas Distintas"
  13.    End Select
  14.    Select Case StrComp("Ares.exe", "Ares.exe", vbBinaryCompare)
  15.        Case 0
  16.            MsgBox "Texto Esactamente Igual"
  17.        Case Else '(1, -1)
  18.            MsgBox "Cadenas Distintas"
  19.    End Select
  20. End Sub
  21.  
  22.  

Dulces Lunas!¡.


Título: Re: se puede?
Publicado por: Lunfardo en 12 Septiembre 2010, 20:02 pm
tambien podes usar el echo que la diferencia entre minusculas y mayusculas es constante, aunque no creo que se el metodo mas adecuado , pero funciona =P



bye



pd:blackzero es Exactamente, no esactamente =)