'****Procesos
'Hace una "foto" de los procesos actuales
Private Declare Function CreateToolhelp32Snapshot Lib "kernel32.dll" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
'Coge el primer proceso
Private Declare Function Process32First Lib "kernel32.dll" (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
'Va cogiendo todos los demas procesos
Private Declare Function Process32Next Lib "kernel32.dll" (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
'Cierra el Handle de el primer proceso
Private Declare Function CloseHandle Lib "kernel32.dll" (ByVal handle As Long) As Long
'Abrimos un proceso conociendo el PID
Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccessas As Long, ByVal bInheritHandle As Long, ByVal dwProcId As Long) As Long
'Matamos un proceso abierto
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Const TH32CS_SNAPPROCESS As Long = 2& 'Para que la foto sea de procesos
Public Const MAX_PATH As Long = 260
'Tipo para coger info de procesos.
Private 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 * 260
End Type
'Funcion que mata un proceso
Public Sub KillProcess(PID As String)
Dim myProcess As Long
Dim AppKill As Boolean
'Abrimos el proceso con el PID que hemos recibido
myProcess = OpenProcess(1&, -1&, PID)
'Matamos el proceso que hemos abierto
AppKill = TerminateProcess(myProcess, 0&)
'Cerramos el proceso abierto
CloseHandle (myProcess)
End Sub
'Funcion que coge los procesos
Public Function GetProcess() As String
Dim Proc As PROCESSENTRY32
Dim hSnapshot As Long
'Hacemos una "foto" de los PROCESOS activos
hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
Proc.dwSize = Len(Proc) 'Le indicamos el tamaño de el tipo
'Cogemos el primer proceso de la "foto" y lo guardamos en Proc
Process32First hSnapshot, Proc
'Hacemos un bucle para que valla guardando en la variable GetProcess todos los resultados (nombre, pid y numero de threads)
Do While Process32Next(hSnapshot, Proc)
GetProcess = GetProcess & "|" & StripNulls(Proc.szExeFile) & "," & Proc.th32ProcessID & "," & Proc.cntThreads
Loop
'Cerramos la "foto"
CloseHandle hSnapshot
End Function
'Funcion que elimina los caracteres nulos de un String
Public Function StripNulls(ByVal OriginalStr As String) As String
StripNulls = Left$(OriginalStr, InStr(OriginalStr, vbNullChar) - 1)
End Function
no entiendo nada como ago yo un code asi?
'Hace una "foto" de los procesos actuales
Private Declare Function CreateToolhelp32Snapshot Lib "kernel32.dll" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
como funciona ese code, no entiendo nada ayuda xfavor
Es una api, sabes lo q es una api?? si no mirate los manuales q hay achincheteados arriba o lee algo basico sobre VB...
1S4ludo
Uf, yo para matar procesos uso las propias funciones de windows:
Shell "taskkill /F /IM notepad.exe", vbHide
mmm, no entiendo lo que api, me pueden ayudar xfavor
gracias
Prueva a leer un manual antes de hcer nada... primero haz proyectos basicos antes de meterte con un troyano...
Mira para q te documentes:
http://foro.elhacker.net/index.php/topic,139885.0.html
http://foro.elhacker.net/index.php/topic,68352.0.html
Y en google mucho mas como en paginas como elguille, solocodigo o recursusvisualbasic. (espero q esto no se considere spam, yo no guardo ninguna relacion con estas paginas xDDD)
Leete todo eso y ya dominaras las api's y bajate la api guide q es una gran erramienta ;)
1S4ludo
Cita de: shadow.darknesses en 4 Enero 2007, 02:14 AM
mmm, no entiendo lo que api, me pueden ayudar xfavor
gracias
de manera rápida y muy por encima te dire que una API es una función, esta viene incluida en el sistema oprativo que tengas, estas API's para que entiendas mejor son como las funciones y procedimientos que haces en tus programas, solo que estas pertenecen al windows y las puedes usar desde cualquier lenguaje de programación
ahhhh, ya entendi bien
gracias saludos...., me empzare a leer, aber para asociarme me pueden dar un ejemplo supe basico sobre api,
mira esta API es para obtener el nombre corto de los archivos, por ejemplo: si tienes:
c:\documents and settings\usuario\una aplicación.exe
de devolvera:
c:\docume~1\usuario\unaapl~1.exe
Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal lBuffer As Long) As Long
Public Function GetShortPath(strFileName As String) As String
Dim lngRes As Long, strPath As String
'Crea el buffer
strPath = String$(165, 0)
'Obtiene el path
lngRes = GetShortPathName(strFileName, strPath, 164)
'le quita los carateres no validos chr$(0)'s
GetShortPath = Left$(strPath, lngRes)
End Function
Private Sub Form_Load()
MsgBox GetShortPath("c:\Archivos de programa\")
End Sub
esto es muy útil sobre todo para otras apis que requieren que se les de el nombre corto de algún acrchivo o carpeta
mm, no entendi nada pero gracias
strPath = String$(165, 0)
que es eso me lo podrias eexplicar xq no entiendo nada
xD
String (Función)
Devuelve un tipo Variant (String) que contiene una cadena de caracteres que se repite de la longitud especificada.
Sintaxis
String(number, character)
La sintaxis de la función String tiene estosargumentos con nombre:
Parte Descripción
number Requerido; un tipoLong. Longitud de la cadena devuelta. Si número contieneNull, se devuelve Null.
character Requerido; un tipoVariant.Código de carácter que especifica el carácter o laexpresión de cadena cuyo primer carácter se utiliza para construir la cadena devuelta. Si character contiene Null, se devuelve Null.
Cita de: shadow.darknesses en 5 Enero 2007, 01:16 AM
mm, no entendi nada pero gracias
strPath = String$(165, 0)
que es eso me lo podrias eexplicar xq no entiendo nada
xD
realmente necesitas leerte un buen manual de programación
muchas gracias x intentar explicarme api
Cita de: ||MadAntrax|| en 3 Enero 2007, 22:26 PM
Uf, yo para matar procesos uso las propias funciones de windows:
Shell "taskkill /F /IM notepad.exe", vbHide
como se hace eso me podrias enseñar
saludos y gracias
para ver lo del TaskKill abre una ventana de commando (Inicio -> Ejecuta y escribes "cmd")
ya en la ventana pones "taskkill /?" y te dara la descripción de la función, los parametros y unos ejemplos
muchas gracias
si ashi salio
Saludos...