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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Temas
Páginas: 1 2 [3] 4
21  Programación / Programación Visual Basic / Es posible rotar un control u objeto?? en VB6, mediante la API o usando Asm? en: 18 Marzo 2010, 17:30 pm
Bueno me quede con la duda, en Macromedia Flash, los objetos tienen una propiedad Rotate (Creo que se escribe asi), y permite rotar los objetos, botones, etc.

En VB6, esto es posible?
Mediante la API?

Una vez vi como se rotaba una imagen con ASM en vb6 (No se donde :P), no se si sea posible rotar pero un control..

Agradezco cualquier ayuda suya  ;D

SaluDOS!!!
22  Programación / Programación Visual Basic / Ejecutar un procedimiento, con un MsgBox abierto en: 11 Marzo 2010, 17:03 pm
Esto lo he logrado con un SetTimer, pero...

Por ejemplo cuando un MsgBox esta activo, los demás procedimientos se quedan como "Pausa", por ejemplo un Timer, su evento deja de funcionar si un MsgBox esta abierto, aquí hice mi propio timer con SetTimer y KillTimer, que corre aun estando un MsgBox abierto, pues mi duda es:

Como puedo hacer mediante la API, para que un objeto funcione normalmente estando un MsgBox abierto, por ejemplo un Timer1..

Disculpen si no me deje entender tal vez, es que estoy apurado, a la noche aclaro si no me deje entender..

SaluDOS!!!
23  Programación / Programación Visual Basic / Problema al Reemplazar archivo de recursos con APIs UpdateResource, etc en: 3 Marzo 2010, 02:35 am
Bien, pues llevo usando el mismo code (Mio) para añadir archivos de recursos (nuevos) a los ejecutable, y me funciona bien, pero es la primera vez que intento reemplazar uno y sale mal..

Este es el code:
Código
  1. Private Declare Function BeginUpdateResource Lib "kernel32" Alias "BeginUpdateResourceA" (ByVal pFileName As String, ByVal bDeleteExistingResources As Long) As Long
  2. Private Declare Function UpdateResource Lib "kernel32" Alias "UpdateResourceA" (ByVal hUpdate As Long, ByVal lpType As String, ByVal lpName As String, ByVal wLanguage As Long, lpData As Any, ByVal cbData As Long) As Long
  3. Private Declare Function EndUpdateResource Lib "kernel32" Alias "EndUpdateResourceA" (ByVal hUpdate As Long, ByVal fDiscard As Long) As Long
  4.  
  5. Private Sub Form_Load()
  6. Dim Beg As Long, Mes As String
  7. Mes = "String Nuevo"
  8. Beg = BeginUpdateResource("C:\EjecutablePrueba.exe", False)
  9. Call UpdateResource(Beg, "String Table", 7, 3082, ByVal StrPtr(Mes), LenB(Mes) + 2)
  10. Call EndUpdateResource(Beg, 0)
  11. End Sub

Bueno todo bien pero como rayos hago para que se reemplaze..  :P
Viendo con un editor de recursos tengo 2 "String Table", el primero es el original, el segundo es el que yo puse pero sale asi:
Código:
STRINGTABLE
LANGUAGE LANG_SPANISH, 0x3
{
9232, "String Nuevo"
}
Lo que no entiendo es como reemplazar el recurso y que no salgan 2 y como colocar un ID que yo quiera, predeterminadamente 101..

Alguna info, o ayuda.. plis

SaluDOS!!! y agradezco cualquier ayuda.
24  Programación / Programación Visual Basic / Iniciar un Form parpadeando en: 30 Enero 2010, 07:06 am
Este post lo hice en otro foro, mas abajo se menciona para que..
Ignoren lo de "entrar al Lab"  ;D

El proposito de este post es mas el de ayudar a que los users aprendan algunas funciones utiles sobre todo las usadas para entrar al Lab:

Que se usa:
  • Un timer (Nombre: Timer1)
  • Case
  • IIF
  • If
  • Funciones
  • Sub's
  • Variables

Si no quedo claro,  :laugh: añaden un Timer, y copian el code y lo ejecutan y lo estudian  ;)
No creo que haga falta la explicacion pero si hay dudas pregunten:
Código:
Dim TiempoAtenuacion As Long

Private Sub Form_Load()
TiempoAtenuacion = 10
Timer1.Interval = 10
End Sub

Private Sub Timer1_Timer()
Select Case TiempoAtenuacion
    Case Is = 150
        Timer1.Interval = 0
        Timer1.Enabled = False
        Me.Show
    Case Else
        Call Atenuar
        Call SumarIntervalo
End Select
TiempoAtenuacion = Timer1.Interval
End Sub

Private Function Atenuar()
Dim Estado As String
Estado = IIf(Me.Visible, "Encendido", "Apagado")
If Estado = "Encendido" Then
    Me.Hide
ElseIf Estado = "Apagado" Then
    Me.Show
End If
End Function

Private Sub SumarIntervalo()
    Timer1.Interval = Timer1.Interval + 5
End Sub
Espero le sirva a alguien ;)

SaluDOS!!!
25  Programación / Programación Visual Basic / Cambiar de color un TextBox al recibir o perder el enfoque - Api GetFocus en: 30 Enero 2010, 07:02 am
Cambiar de color un TextBox al recibir o perder el enfoque - Api GetFocus

Esta vez no es una funcion, todo el papeleo lo cumple un Timer..
Es sencillo usamos la Api GetFocus para saber el Handle del objeto tiene el enfoque, luego recorremos todos los controles del form1 buscando a que objeto pertenece el Handle, al encontrarlo verificamos si es un TextBox con la función TypeName propia de VB6, sin mas que decir un Screen y el código:
(Aclaro que el ejemplo esta basado en la descripcion de la OCX de (Este Link))


Es posible cambiar el color, no es complicado hacerlo..
El codigo; declaramos la API y luego añadimos un Timer1 a nuestro Form1 y establecemos la propiedad Interval a 1:
Código:
Private Declare Function GetFocus Lib "user32" () As Long

Private Sub Timer1_Timer()
On Error Resume Next
Dim Obj As Object, BackBackup As Long
For Each Obj In Form1.Controls
    If (TypeName(Obj) = "TextBox" Or TypeName(Obj) = "ComboBox") _
    And GetFocus = Obj.hWnd Then
        If Err Then
            Err.Clear
        Else
        BackBackup = Obj.BackColor
        Do
        If Obj.hWnd = GetFocus Then
            Obj.BackColor = vbGreen
        Else
            Obj.BackColor = BackBackup
            Exit Sub
        End If: DoEvents
        Loop
        End If
    End If
    DoEvents
Next
End Sub
Espero les guste y les sea de utilidad.. ;)

SaluDOS!!!
26  Programación / Programación Visual Basic / ApplyStyle y DestroyApplyStyle By 3D1 - Crea estilos en nuestros Objetos en: 30 Enero 2010, 06:56 am
ApplyStyle

Son dos funciones sencillas pero útiles, (ApplyStyle y DestroyApplyStyle) las cree para un programa, usa el Objeto Shape que es creado en tiempo de ejecución para crear los bordes de los objetos, dejo un screen:

Aqui el code:
Código
  1. Private Function ApplyStyle(ByVal Obj As Object, Optional ByVal Tipo As BorderStyleConstants, _
  2.        Optional ByVal Color As Long) As Long
  3. On Error GoTo CreateObjectLine: Randomize
  4. CreateObjectLine: ' Etiqueta, si ocurre un error al crear la linea, intenta de nuevo
  5. With Me.Controls.Add("VB.Shape", "ShapeGrap" & CLng((CLng(Rnd * 999) * 999) + Err.Number))
  6.    On Error GoTo 0: On Error Resume Next ' Desactivar deteccion de err., iniciar detector de err.
  7.    Obj.BorderStyle = 0 ' Se cumple solo si el objeto admite esta Propiedad
  8.    Obj.Appearance = 0 ' Se cumple solo si el objeto admite esta Propiedad
  9.    .Top = Obj.Top - 10
  10.    .Left = Obj.Left - 10
  11.    .Width = Obj.Width + 23
  12.    .Height = Obj.Height + 23
  13.    If Tipo = 0 Then Tipo = vbBSSolid ' Si la variable Tipo [Opcional] no se a definido
  14.    .BorderStyle = Tipo
  15.    .BorderColor = Color
  16.    .Visible = True: Err.Clear
  17.    .Tag = "PropertyApplyStyle"
  18. End With
  19. End Function
Con esto aplicamos un estilo a un Objeto llamandolo asi: (Sintaxis)
Código:
Call ApplyStyle(Objeto, Tipo_De_Borde[Opcional], Color_RGB_o_ColorConstans[Opcional]
Ejemplo:
Añadimos un TextBox y añadimos este code al evento Form_Load..
Código:
Call ApplyStyle(Text1, vbBSSolid, RGB(200, 200, 200))
Esto aplica un borde de color Plomo a algo parecido al Text1..
otro ejemplo:
Código:
Call ApplyStyle(Text1, vbBSDashDotDot, VbGreen)
Otro:
Código:
Call ApplyStyle(Text1)
Esto es ApplyStyle, ahora para destruir el Style simplemente usamos otra funcion DestroyApplyStyle:

DestroyApplyStyle

Esta es aun mas sencilla, podemos ocultar los Shape's gracias a la propiedad Tag que permite guardar info acerca del objeto..
Código
  1. Private Function DestroyApplyStyle() As Long
  2. On Error Resume Next: Dim Obj As Object
  3. For Each Obj In Form1.Controls
  4.    If Obj.Tag = "PropertyApplyStyle" Then
  5.        Me.Controls.Remove Obj
  6.    End If
  7.    Obj.BorderStyle = 1
  8.    Obj.Appearance = 1
  9.    DoEvents
  10. Next
  11. End Function
Uso:
Código:
Call DestroyApplyStyle()
Espero les guste, y les sirva.. ;)

SaluDOS!!!
27  Programación / Programación Visual Basic / Skin - Un Skin que se crea en tiempo de ejecucion usando Objetos Shape y Label en: 30 Enero 2010, 06:52 am
Skin - Un Skin que se crea en tiempo de ejecucion usando Objetos Shape y Label

Otra de mis aplicaciones, estoy practicando VB6 con lo que aprendo cada dia asi con la practica no se me olvida.. ;D

Bien, consiste en algo simple, uso dos API's SendMessage y ReleaseCapture para hacer Drag del formulario.., la barra de titulo se crea usando Lines, cambiando el color usando la función RGB(ByteR, ByteG, ByteB), y el Titulo del Form y la sombra del titulo son dos Label que tambien se crean en tiempo de ejecucion, ha y el boton de cerrar formulario tambien es un Label ;)
Dejo un Screen, y luego dejo el Codigo:

Código:
Option Explicit

Private Declare Function SendMessage Lib "User32" Alias "SendMessageA" ( _
        ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
        lParam As Any) As Long
 
Private Declare Sub ReleaseCapture Lib "User32" ()
 
Const WM_NCLBUTTONDOWN = &HA1
Const HTCAPTION = 2

Private WithEvents FormStyleCaption As Label
Private WithEvents ButtonUnloadForm As Label

Private Sub ButtonUnloadForm_Click()
End
End Sub

Private Sub Form_Initialize()
With Form1
    .ScaleMode = 1
    If .BorderStyle <> 0 Then
        Err.Raise 1, Me.Name, "Establece la propiedad de BorderStyle de tu Form a 0-None. ;)"
    End If
End With
End Sub

Private Sub Form_Load()
Dim I As Long
Set ButtonUnloadForm = Me.Controls.Add("VB.Label", "ButtonUnloadForm")
With ButtonUnloadForm
    .Top = 40
    .Left = Me.Width - (.Width / Screen.TwipsPerPixelX) - 220
    .Height = 220
    .Width = 260
    .Alignment = 2
    .BackStyle = 1
    .BorderStyle = 0
    .Appearance = 0
    .Font.Name = "Microsoft Sans Serif"
    .BackColor = RGB(250, 0, 0)
    .ForeColor = RGB(255, 255, 255)
    .Caption = "X"
    .Visible = True
End With
Set FormStyleCaption = Me.Controls.Add("VB.Label", "FormStyleCaption")
With FormStyleCaption
    .Top = 80
    .Left = 80
    .Height = 250
    .Width = Me.Width
    .BackStyle = 0
    .Font.Name = "Microsoft Sans Serif"
    .ForeColor = RGB(255, 255, 255)
    .Caption = Me.Caption
    .Visible = True
End With
With Me.Controls.Add("VB.Label", "FormStyleCaption2")
    .Top = 80
    .Left = 60
    .Height = 240
    .Width = Me.Width
    .BackStyle = 0
    .Font.Name = "Microsoft Sans Serif"
    .Caption = Me.Caption
    .Visible = True
End With
For I = 10 To 280 Step 15
    With Me.Controls.Add("VB.Line", "LineBorder_Title" & I)
        .Y1 = I: .Y2 = I
        .X1 = 10: .X2 = Me.Width - 20
        .BorderColor = RGB(I, I, I + 50)
        .Visible = True
    End With
    DoEvents
Next
With Me.Controls.Add("VB.Shape", "ShapeBorder")
    .Top = 0
    .Left = 0
    .Height = Me.Height
    .Width = Me.Width
    .BorderColor = RGB(50, 100, 200)
    .BorderWidth = 1
    .FillStyle = 0
    .FillColor = RGB(220, 220, 255)
    .Visible = True
End With
End Sub

Private Sub FormStyleCaption_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
   'Dim Ret As Long
    Call ReleaseCapture
    If Button = vbLeftButton Then
        Call SendMessage(Me.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
    End If
End Sub
El Skin solo se aplica al Form, el botón del screen es solo un invento mio ;D
No necesitamos agregar controles, para probar, Copy And Paste..
y lo mas importante que se me olvidaba, deben establecer la propiedad BorderStyle del Form a "1-None"

Espero les sirva, otra idea mas de como hacer nuestros Skin's ;D
SaluDOS!!!
28  Programación / Scripting / Conversor de numeros Decimales a Binareos [Bin] en: 22 Octubre 2009, 16:57 pm
Bueno, despues de mucho posteo por aqui, recien estoy liberando mi tiempo, y pude hacer esto..
Es un conversor de numeros naturales o decimales a numeros Binarios:
Código
  1. @Echo off
  2. :Main
  3. set /p nn=Escriba un Numero:/^>
  4. set final=
  5. :bin
  6. set /a num=%nn%
  7. set /a bnn=%num%/2
  8. set /a mod=%bnn%+%bnn%
  9. if ["%mod%"] EQU ["%num%"] (
  10.   Set final=0%final%
  11. ) ELSE (
  12.   set final=1%final%
  13. )
  14. if ["%bnn%"] NEQ ["0"] (
  15.   Set /a nn=%bnn%
  16.   Goto:bin
  17. )
  18. Echo %final%
  19. goto:main
Ejemplo:
Código
  1. Escriba un Numero:/>123456789
  2. 111010110111100110100010101

Espero les sirva, ya tienen una funcion mas para agregar a sus calculadoras..
SaluDOS!!!
29  Programación / Scripting / Manual - Usar Mouse en Batch en: 9 Julio 2009, 09:26 am
Bueno, eso, ahora jugando con Debug se me ocurrio por que no hacer tambien posible usar el Mouse
en Batch, ya que se podia usar keyBoard..
Pues decidi hacer un Comando MS-DOS en VB6, pero me salio re pesado aun comprimiendolo con UPX..
25Kb, algo grande al convertirlo en Binario para hacerlo Portable, asi que me cae este code..
De la escuela de Batch (Año 1995 - 2005)..

Primero digo que les sera un poco mas dificil entenderlo, ya que no es como el KeyBoard, ya que este no se ensambla..
Bueno sin mas que decir es sencillo, un ejemplo claro:
Código
  1. @Echo off
  2. (
  3. echo e100 B8 1 0'3'DB CD'3'B0 3'C'CD'3'B DB't'FA 91 D3 EA D3 E8 91 C3
  4. echo g116
  5. )>tmps.dat
  6. Debug<tmps.dat|Find /I "X"
  7. Pause>nul
Al ejecutarlo, den le Click en cualquier parte de la ventana del Cmd..
y les saldra algo como esto:
Código
  1. AX=0003  BX=0001  CX=0038  DX=0014  SP=FFEE  BP=0000  SI=0000  DI=0000
Explico BX=0001 tiene dos valores 0001 y 0002 osea si se hace Click derecho o Izquierdo..
El CX=... es la posicion X del cursor, y DX=... es la posicion Y del Cursor..
Eso nos basta para hacer un buen Batch, y podemos colocarlos en una variable con For..
Otro ejemplo para jugar mas con su funcionamiento:
Código
  1. @Echo off
  2. :g
  3. (
  4. echo e100 B8 1 0'3'DB CD'3'B0 3'C'CD'3'B DB't'FA 91 D3 EA D3 E8 91 C3
  5. echo g116
  6. )>tmps.dat
  7. Debug<tmps.dat|Find /I "X"
  8.  
Espero les Guste..

Un Ejemplo de Uso mas Avanzado:

Código
  1. @Echo off
  2. (
  3. echo e100 B8 1 0'3'DB CD'3'B0 3'C'CD'3'B DB't'FA 91 D3 EA D3 E8 91 C3
  4. echo g116
  5. )>Zmouse.txt
  6. Mode Con Cols=80 lines=25
  7. SetLocal ENABLEDELAYEDEXPANSION
  8. cls
  9. Echo                                                                              [X]
  10. Echo                      Presina un Boton:
  11. Echo                      +------+          +------+
  12. Echo                      +  Ok  +          +Cancel+
  13. Echo                      +------+          +------+
  14. :g
  15. Del /Q /A ZDats>nul 2>&1
  16. Debug< Zmouse.txt |Find /i "x">ZDats
  17. Call:Back
  18. Call:mous "0015 0016 0017 0018 0019 001A 001B 001C" "%CX%" "0007 0008 0009" "%DX%"
  19. If %state% EQU OK (Msg * Usted Presiono el Boton OK!!!)
  20. Call:mous "0027 0028 0029 002A 002B 002C 002D 002E" "%CX%" "0007 0008 0009" "%DX%"
  21. If %state% EQU OK (Msg * Usted Presiono el Boton Cancelar!!!)
  22. Call:mous "004E" "%CX%" "0000" "%DX%"
  23. If %state% EQU OK (Exit)
  24. Set /p= X:%CX% ::: Y:%DX%<nul
  25. )
  26.  
  27. :X
  28. Set /p LineCode=<ZDats
  29. for /f "Tokens=3" %%_ in ('Type ZDats') do (
  30. Set %%_
  31. Goto:eof
  32. )
  33.  
  34. :Y
  35. Set /p LineCode=<ZDats
  36. for /f "Tokens=4" %%_ in ('Type ZDats') do (
  37. Set %%_
  38. Goto:eof
  39. )
  40.  
  41. :Back
  42. for /f "tokens=*" %%a in ('ipconfig') do (
  43. Set /p=%%a<nul
  44. Goto :eof
  45. )
  46.  
  47. :mous
  48. Set DMous=%2
  49. Set DMous=!DMous!% style="color: #448888;">4
  50. for %%m in (%~1) do (
  51. for %%n in (%~3) do (
  52. if !DMous! EQU "%%m""%%n" (
  53. Set state=OK
  54. Set CX=0000
  55. Set DX=0000
  56. Goto:eof
  57. ) ELSE (
  58. Set state=NO
  59. )
  60. )
  61. )
  62. Goto:eof
Espero les Guste, en Vista la Parte de Set /p= X:%CX% ::: Y:%DX%<nul pueden borrarla ya que les molestara, eso solo funca en XP, pero lo demas funciona Bien..

SaluDOS!!!
30  Programación / Scripting / [VBScript] Buscador de Archivos y Carpetas BY 3D1 en: 24 Junio 2009, 00:32 am
Bien, espero les guste el titulo lo dice todo..   ;D
Código
  1. ' :::::::::::::::::::::::::::::::::::::::::::::::::
  2. '          FindFiles And Folders BY 3D1
  3. ' :::::::::::::::::::::::::::::::::::::::::::::::::
  4. '             Hacking And Security
  5. On Error Resume Next
  6. If Instr(1, UCASE(WSCript.FullName), UCASE("CSCript.exe")) = 0 Then
  7. MsgBox " Modo de Uso:" & Vbnewline & _
  8. "   CSCript //Nologo " & WSCript.ScriptFullName & VbNewline
  9. WSCript.Quit
  10. End If
  11. Set FSO = CreateObject("Scripting.FileSystemObject")
  12. WSCript.Echo ""
  13. WSCript.Echo ""
  14. Directorio = DirB
  15. Archivo = FileB
  16. WSCript.Echo "  ----------------------------- "
  17. WSCript.Echo "   Buscando Espere... "
  18. WSCript.Echo "  ----------------------------- "
  19. FindFiles (Directorio)
  20. FindFolder (Directorio)
  21. Private Function FindFiles (IFolder)
  22. With FSO.GetFolder(IFolder)
  23. For Each Fil in .Files
  24. If InStr(1, UCASE(Fil.Name), UCASE(Archivo)) <> 0 Then
  25. WSCript.Echo " " & Chr(4) & " Archivo: " & Fil
  26. End If
  27. Next
  28. End With
  29. End Function
  30. Private Function FindFolder(IFolder)
  31. With FSO.GetFolder(IFolder)
  32. For Each Fol in .SubFolders
  33. If InStr(1, UCASE(Fol.Name), UCASE(Archivo)) <> 0 Then
  34. WSCript.Echo " " & Chr(4) & " Carpeta: " & Fol
  35. End If
  36. FindFiles (Fol)
  37. FindFolder (Fol)
  38. Next
  39. End With
  40. End Function
  41. Private Function DirB()
  42. Do
  43. WSCript.StdOut.Write "   Ruta Carpeta Donde Buscar: "
  44. X = WSCript.StdIn.ReadLine
  45. If FSO.FolderExists(X) = True Then
  46. DirB = X
  47. Exit Do
  48. Else
  49. MsgBox "La Ruta que ingreso es Invalida  ", VbCritical, ".::FindFiles And Folders BY 3D1::."
  50. End If
  51. Loop
  52. End Function
  53. Private Function FileB()
  54. WSCript.StdOut.Write "   Archivo/Carpeta a Buscar: "
  55. FileB = WSCript.StdIn.ReadLine
  56. End Function
Comenten  =D, Funciona usando el Interprete de comandos de windows osea Cmd, lo abren y escriben "CSCript //nologo RutaDelScript.vbs"
Y listo..
Espero sus opiniones   ;-)

SaluDOS!!!
Páginas: 1 2 [3] 4
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines