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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15 16 17 18 19 20 21 22
81  Programación / Programación Visual Basic / Re: Estado de un programa externo en: 24 Octubre 2007, 22:17 pm
Para dos aplicaciones hechas en visual podes hacer esto:
Código
  1. Private Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long
  2.  
  3. Private Sub Form_Load()
  4. CreateWindowEx 0&, "STATIC", "CADENAAA QUE IDENTIFIQUE EL FORM", 0&, 0&, 0&, 0&, 0&, 0&, 0&, App.hInstance, 0&
  5. End Sub
  6.  
esa seria la aplicacion A, la aplicacion B tendria este code:
Código
  1. Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
  2.  
  3. Private Sub Form_Load()
  4. If FindWindow(vbNullString, ByVal "CADENAAA QUE IDENTIFIQUE EL FORM") Then
  5.        MsgBox "La aplicacion A esta activa"
  6. End If
  7. End Sub
  8.  
Si ejecutas B, entonces se utiliza la api findwindow para buscar una ventana que contiene el codigo que creamos con la api createwindowex en la aplicacion A.
si es para observar otras aplicaciones podes utilizar la misma api findwindow para buscar por el titulo de la ventana que contiene la aplicacion, o utilizas la api getclassname para mirar si la clase en una aplicacion esta activa.
que te sirva y saludos ;)
82  Programación / Programación Visual Basic / Re: Saber Nombre de PC en: 24 Octubre 2007, 01:15 am
O tambien con apis
Código
  1. Private Declare Function WSAStartup Lib "WSOCK32" (ByVal wVersionRequired As Long, lpWSADATA As WSAData) As Long
  2. Private Declare Function gethostname Lib "WSOCK32" (ByVal szHost As String, ByVal dwHostLen As Long) As Long
  3. Private Type WSAData
  4.    szSystemStatus(0 To 128) As Byte
  5.    dwVendorInfo As Long
  6. End Type
  7.  
  8. Private Sub Command1_Click()
  9. Dim Nombre As String * 257
  10. Dim WSAD As WSAData
  11. WSAStartup &H101, WSAD
  12. gethostname Nombre, 257
  13. MsgBox Nombre
  14. End Sub
  15.  
una vez dentro de la PC :P jeje

saludos ;)
83  Programación / Programación Visual Basic / Re: Mas de listview(suma) en: 24 Octubre 2007, 00:49 am
Creo que tu problema se encuentra en esta parte del codigo:
Código
  1.    If IsNull(ListView1.ListItems(i).SubItems(Grupo)) Then
  2.    SumarGrupo = 0
  3.    Else
  4.  

cuando compruebes que es nulo, no resetees la variable sumagrupo a cero, sumala con el valor que ya venias sumando:
Código
  1.    If IsNull(ListView1.ListItems(i).SubItems(Grupo)) Then
  2.    SumarGrupo = SumarGrupo + 0
  3.    Else
  4.  
o simplemente coloca:
Código
  1.    If not IsNull(ListView1.ListItems(i).SubItems(Grupo)) Then
  2.    SumarGrupo = SumarGrupo + CDbl(ListView1.ListItems(i).SubItems(Grupo))
  3.    End If
  4.  
eso corrigiendo esa parte del codigo, pero veo que la funcion isnull no funciona, entonces podes aplicar este codigo:
Código
  1. Private Function SumarGrupo(Grupo%)
  2. Dim i%
  3. For i = 1 To ListView1.ListItems.Count
  4. If Val(ListView1.ListItems(i).SubItems(Grupo)) <> 0 Then
  5.     SumarGrupo = SumarGrupo + CDbl(ListView1.ListItems(i).SubItems(Grupo))
  6.     End If
  7. Next i
  8. End Function
  9.  

Saludos y espero que te sirva ;)

Editado: Mi control se llama L, ahora le puse el nombre de tu control (ListView1) ...
84  Programación / Programación Visual Basic / Re: Reemplazar texto en un RichTexbOx "Visual Basic" en: 24 Octubre 2007, 00:14 am
Bueno, creo que es algo complicado porque el texto de una imagen en el richtextbox se representa no de una forma en texto, sino mucho mas extensa, mira esto:
Código
  1. text1.text = richtextbox1.textrtf
  2.  
con la imagen que pusiste, saldria algo como:
Código:
{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fnil\fcharset0 MS Sans Serif;}}
\viewkind4\uc1\pard\lang3082\f0\fs17{\pict\wmetafile8\picw449\pich661\picwgoal255\pichgoal375
010009000003c20200000000ac0200000000050000000b0200000000050000000c029502c101ac
020000430f2000cc00000019001100000000009502c10100000000280000001100000019000000
010018000000000000000000c40e0000c40e000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000031360090a100a4b800a0b3009bae008292002c3200
00000000000000000000000000000000000000000000000000000000889900b0c500aabe000000
0000000000000098aa0096a800707e00000000000000000000000000000000000000000000008f
a000bad000b4ca0000000000000000000000000000000096a80094a600707e0000000000000000
000000000000000000353b00c1d900bfd600000000000000000000000000000000000000000000
96a80096a8002c320000000000000000000000000000aabe00c9e10096a8000000000000000000
0000000000000000000000000072800098aa0082920000000000000000000000000000cfe800cf
e80000000098aa00c7df00c1d900bad000b0c500aabe007988000000009bae009bae0000000000
000000000000000000d6f000d6f000d6f000d6f000cfe800cee700c1d900bad000b0c500aabe00
a3b700a0b300a0b30000000000000000000000000000ddf800e3fe00e3fe00000000000000d2ec
00c9e100c1d900000000000000aabe00a4b800a4b80000000000000000000000000019c4d841eb
ff63eeff00000000000000ddf800cfe800c9e100000000000000b0c500aabe0090a10000000000
0000000000000000163b3f8cf3ffb4f7ffaef6ff69efff00e3fe00d6f000c9e100c1d900bad000
b4ca00b0c50031360000000000000000000000000000000088bac0cbf9ffb4f7ff63eeff00e3fe
00d6f000cfe800c7df00bfd600bad0008899000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000b2b2b2d6d6d6e5e5e5e7e7e7e5e5e5dadadad4d4d4c2c2c29f
9f9f00000000000000000000000000000000000000000000000000c5c5c5ecececfcfcfcffffff
fcfcfcefefefeaeaead4d4d4afafaf000000000000000000000000000000000000000000000000
00c5c5c5ececece5e5e5e7e7e7e5e5e5dadadaeaeaead4d4d4afafaf0000000000000000000000
0000000000000000000000000000c5c5c5bfbfbf000000000000000000000000bfbfbfd4d4d4af
afaf000000000000000000000000000000000000000000000000009c9c9c0000009f9f9fafafaf
afafaf9f9f9f000000acacac9f9f9f000000000000000000000000000000000000009f9f9f9f9f
9f0000009f9f9fcececed4d4d4d4d4d4d1d1d1a2a2a20000000000009f9f9fafafaf9c9c9c0000
0000000000b2b2b2d4d4d4d4d4d4bfbfbfc5c5c5d8d8d8e7e7e7ececece7e7e7c5c5c5000000a6
a6a6d1d1d1cececeafafaf00000000000000d6d6d6ececece7e7e7dbdbdbd8d8d8e7e7e7dadada
f8f8f8f1f1f1e4e4e4bbbbbbe3e3e3e7e7e7d4d4d49f9f9f00000000000000cdcdcdfafafaf1f1
f1ecececeaeaeac2c2c2000000e7e7e7f8f8f8ecececc7c7c7ddddddd6d6d6b2b2b20000000000
0000000000000000cfcfcfe5e5e5e3e3e3c4c4c4000000b7b7b7fafafaf1f1f1d4d4d400000000
000000000000000000000000000000000000000000000000000000000000000000000000000000
c4c4c4d4d4d4c5c5c5909090000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000
0000030000000000
}
\par }
si queres reemplazar la imagen, tendrias que hacer un Instr, con ese code, y luego si lo encuentra reemplazarlo con la imagen que queres. algo asi:
Código
  1. Private Sub Command1_Click()
  2. Picture1.Picture = LoadPicture("c:\reto.jpg")
  3. Clipboard.SetData Picture1.Picture, vbCFBitmap
  4. RichTextBox1.SetFocus
  5. SendKeys "^v"
  6. End Sub
  7.  
pero el code es muy inestable... y no encuentro otra forma de cargar imagenes en el richtextbox que no sea de esa manera, si utilizo el metodo OLEObjects.Add, agregandole el archivo que quiero que cargue, no agrega la imagen, sino que carga todo el control de la aplicacion. por ejemplo para los bitmap, me carga la barra de archivo del paint, algo asi como para editar la imagen.
lo mejor seria hacer las conversaciones en un control de texto normal (TextBox), y poner un timer que vaya recorriendo el mensaje en busca de iconos como :) ;) :P, y luego los reemplaze con el code que te postee en un richtextbox. pero no creo que funcione mucho...

saludos ;)
85  Programación / Programación Visual Basic / Re: Calculadora por vb importante en: 23 Octubre 2007, 23:21 pm
Resultado.text = val(text1.text) + val(text2.text) 'suma
Resultado.text = val(text1.text) - val(text2.text) 'resta
Resultado.text = val(text1.text) * val(text2.text) 'mult
Resultado.text = val(text1.text) / val(text2.text) 'division cuando text2.text <> 0
Resultado.text = val(text1.text) mod val(text2.text) 'modulo

es asi ? jajaja

saludos ;)
86  Programación / Programación Visual Basic / Re: Matar procesos en WinXP en: 23 Octubre 2007, 03:56 am
Jeje, muy bueno tu aporte, pero trata siempre de economizar codigo, podemos quitarle a la funcion de getdirectory todos los cases, ya que solo utilizas una vez la funcion:
Código
  1. If Dir$(GetDirectory(3) & "\taskkill.exe") <> "" Then
  2.  
y meter todo lo de buscar el proceso en un sub como le hize yo ya que ayuda a entender mas facilmente el codigo.

en total tu code bien organizado quedaria asi:
Código
  1. Option Explicit
  2. Private Const TH32CS_SNAPALL = (&H1 Or &H2 Or &H4 Or &H8)
  3. Private Const MAX_PATH As Integer = 260
  4. Private Const PROCESS_TERMINATE = &H1
  5. Private Type PROCESSENTRY32
  6. dwSize As Long
  7. cntUsage As Long
  8. th32ProcessID As Long
  9. th32DefaultHeapID As Long
  10. th32ModuleID As Long
  11. cntThreads As Long
  12. th32ParentProcessID As Long
  13. pcPriClassBase As Long
  14. dwFlags As Long
  15. szExeFile As String * MAX_PATH
  16. End Type
  17. Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessID As Long) As Long
  18. Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
  19. Private Declare Function Process32First Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
  20. Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
  21. Private Declare Sub CloseHandle Lib "kernel32" (ByVal hPass As Long)
  22. Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
  23. Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
  24. Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
  25.  
  26. Private Function GetDirectory() As String
  27. Dim sr&, sys$
  28. sys = Space$(255): sr = 0
  29. sr = GetSystemDirectory(sys, Len(sys))
  30. sys = Left$(sys, sr)
  31. Trim (sys)
  32. GetDirectory = sys
  33. End Function
  34.  
  35. Private Sub MatarProceso2(proceso$)
  36. Dim hSnapShot#, ProcesoC#, ResP#, ProcesoC2#, R#, uProcess As PROCESSENTRY32
  37. hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0&)
  38. uProcess.dwSize = Len(uProcess)
  39. R = Process32First(hSnapShot, uProcess)
  40.  
  41. Do While R
  42.    If Left$(uProcess.szExeFile, IIf(InStr(1, uProcess.szExeFile, Chr$(0)) > 0, InStr(1, uProcess.szExeFile, Chr$(0)) - 1, 0)) = proceso Then
  43.        ProcesoC = uProcess.th32ProcessID
  44.        ProcesoC2 = OpenProcess(PROCESS_TERMINATE, True, ProcesoC)
  45.        ResP = TerminateProcess(ProcesoC2, 99)
  46.        CloseHandle ProcesoC2
  47.        Exit Do
  48.    Else
  49.        R = Process32Next(hSnapShot, uProcess)
  50.    End If
  51. Loop
  52. CloseHandle hSnapShot
  53. End Sub
  54.  
  55. Sub MatarProceso(proceso$)
  56. If Dir$(GetDirectory & "\taskkill.exe") <> "" Then
  57.    Shell "taskkill.exe /IM " & proceso$, vbHide
  58. Else
  59.    MatarProceso2 proceso$
  60. End If
  61. End Sub
  62.  
  63. Private Sub Command1_Click()
  64. MatarProceso "notepad.exe"
  65. End Sub
  66.  
te tengo una observacion, al realizar funciones, siempre trata de que la funcion devuelva un tipo de dato definido.
vos pusiste:
Código
  1. Private Function GetDirectory(x)
  2. ...
  3. End Function
  4.  

quedaria algo como:
Código
  1. Private Function GetDirectory(x) as String
  2. ...
  3. End Function
  4.  

gracias por el post ;)

saludos!
87  Programación / Programación Visual Basic / Re: enviar datos de visual basic a una pagina web en: 23 Octubre 2007, 02:25 am
Bueno, es bastante facil, lo que tenes que hacer es coger la sesion que te manda el servidor en la cabecera http, cuando te manda el set-cookie, te manda un identificador que se llama set-cookie: PHPSESSID...
lo que tenes que hacer es declarar una variable globalmente, la sesion la guardas ahi, y cada vez que haces un request a la pagina pones
cookie: PHPSESSID=sesion
mira este codigo que hice:
Código
  1. Private Sub Command1_Click()
  2. cadena = "blablablablablanlkablabajnkajnakj" & vbCrLf & _
  3. "blablablablablanlkablabajnkajnakj" & vbCrLf & _
  4. "blablablablablanlkablabajnkajnakj" & vbCrLf & _
  5. "blablablablablanlkablabajnkajnakj" & vbCrLf & _
  6. "blablablablablanlkablabajnkajnakj" & vbCrLf & _
  7. "blablablablablanlkablabajnkajnakj" & vbCrLf & _
  8. "set-cookie: PHPSESSID=df018ddc6671e913593517f142e895fc; path=/"
  9.  
  10. headers = Split(cadena, vbCrLf)
  11. For j = 0 To UBound(headers)
  12.    headers2 = Split(headers(j), " ")(0)
  13.    If LCase(headers2) = "set-cookie:" Then
  14.        url = Trim(Replace(headers(j), "set-cookie:", ""))
  15.        url_desglosada = Split(url, ";")
  16.        For i = 0 To UBound(url_desglosada)
  17.            If LCase(Mid(url_desglosada(i), 1, 9)) = "phpsessid" Then
  18.                sesion = Trim(Split(url_desglosada(i), "=")(1))
  19.                GoTo Escape
  20.            End If
  21.        Next i
  22.    End If
  23. Next j
  24. Escape:
  25. MsgBox sesion
  26. End Sub
  27.  
espero te sirva

saludos ;)
88  Programación / Programación Visual Basic / Re: Ayuda con este codigo por favor en: 22 Octubre 2007, 00:23 am
Bueno, creo recordar como era, pero no estoy seguro porq no tengo instalado el visual en esta pc.
te doy el numero a usar para identificar la tecla que es, asi mismo se usa la funcion getasynckeystate para retornar el valor de la letra pulsada.
Código
  1. if getasynckeystate(numero) then
  2.    num(1) = num(1) + 1 'no se que haces con esto, pero lo vuelvo a poner xD, solo es un exemplo
  3. end if
  4.  
Donde numero pueden ser estos valores:
37 = izquierda
38 = arriba
39 = derecha
40 = abajo
106 = *
107 = +
108 = intro
109 = -
110 = .
111 = /

Cuando este en mi compu lo pruebo, y vuelvo a postear si es necesario :P

saludos !
89  Programación / Programación Visual Basic / Re: ¿¿¿Como crear un control personalizado.. en: 21 Octubre 2007, 22:35 pm
Pegate una leida en esta pagina: http://www.elguille.info/vb/cursos_vb/BASICO/basico47.htm, es bien buena, te enseñan a crear una dll, el proceso para crear el control o componente es parecido y si tienes alguna duda, anda a http://elguille.info/vb/VB_CCE.HTM.

Creo que es lo que pides :P

saludos ;)
90  Programación / Programación Visual Basic / Re: Matar procesos en WinXP en: 21 Octubre 2007, 20:01 pm
No necesariamente tendria porq tener el else despues del if, solo es un checkeo de si el archivo existe o no, si no existe simplemente no se ejecuta nada mas...
o se podria hacer que si el archivo no existe, ejecutara el codigo que publique...
Código
  1. Option Explicit
  2. Private Const TH32CS_SNAPHEAPLIST = &H1
  3. Private Const TH32CS_SNAPPROCESS = &H2
  4. Private Const TH32CS_SNAPTHREAD = &H4
  5. Private Const TH32CS_SNAPMODULE = &H8
  6. Private Const TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST Or TH32CS_SNAPPROCESS Or TH32CS_SNAPTHREAD Or TH32CS_SNAPMODULE)
  7. Private Const TH32CS_INHERIT = &H80000000
  8. Private Const MAX_PATH As Integer = 260
  9. Private Const PROCESS_TERMINATE = &H1
  10.  
  11. Private Type PROCESSENTRY32
  12.    dwSize As Long
  13.    cntUsage As Long
  14.    th32ProcessID As Long
  15.    th32DefaultHeapID As Long
  16.    th32ModuleID As Long
  17.    cntThreads As Long
  18.    th32ParentProcessID As Long
  19.    pcPriClassBase As Long
  20.    dwFlags As Long
  21.    szExeFile As String * MAX_PATH
  22. End Type
  23. Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessID As Long) As Long
  24. Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
  25. Private Declare Function Process32First Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
  26. Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
  27. Private Declare Sub CloseHandle Lib "kernel32" (ByVal hPass As Long)
  28. Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
  29. Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
  30.  
  31. Public Sub MatarProceso(proceso$)
  32.    Dim hSnapShot#, ProcesoC#, ResP#, ProcesoC2#, R#, uProcess As PROCESSENTRY32
  33.    hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0&)
  34.    uProcess.dwSize = Len(uProcess)
  35.    R = Process32First(hSnapShot, uProcess)
  36.  
  37.    Do While R
  38.        If Left$(uProcess.szExeFile, IIf(InStr(1, uProcess.szExeFile, Chr$(0)) > 0, InStr(1, uProcess.szExeFile, Chr$(0)) - 1, 0)) = proceso Then
  39.            ProcesoC = uProcess.th32ProcessID
  40.            ProcesoC2 = OpenProcess(PROCESS_TERMINATE, True, ProcesoC)
  41.            ResP = TerminateProcess(ProcesoC2, 99)
  42.            CloseHandle ProcesoC2
  43.            Exit Do
  44.        Else
  45.            R = Process32Next(hSnapShot, uProcess)
  46.        End If
  47.    Loop
  48.    CloseHandle hSnapShot
  49. End Sub
  50.  
  51. Private Sub Command1_Click()
  52. Dim RutaSys$, Buffer%
  53. RutaSys = String(255, Chr$(0))
  54. Buffer = GetSystemDirectory(RutaSys, 255)
  55. RutaSys = Left$(RutaSys, Buffer)
  56. If Dir$(RutaSys & "\taskkill.exe") <> "" Then
  57.    Shell "taskkill.exe /IM notepad.exe"
  58. else
  59.    MatarProceso "notepad.exe"
  60. End If
  61. End Sub
Páginas: 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15 16 17 18 19 20 21 22
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines