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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


  Mostrar Temas
Páginas: 1 [2] 3 4 5 6 7 8 9 10
11  Programación / Programación Visual Basic / Problemas para leer un RSS (Microsoft.XMLDOM) en: 8 Junio 2011, 21:07 pm
Hola tengo problemas para leer un rss, estoy usando Microsoft.XMLDOM, el problema es cuando trato de leer el documento ("Load"), lo que es extraño para mí es que con Firefox o Internet Explorer se muestra correctamente.

el problema es con este rss http://www.taringa.net/rss/home/ultimos-posts/

al parecer es por la primera linea
Código:
<?xml version="1.0" encoding="UTF-8"?>

si yo descargo el documento en disco y pongo
Código:
<?xml version="1.0" encoding="ISO-8859-1"?>
lee el documento correctamente.

Código:
Option Explicit
'Private Doc As DOMDocument
Private Doc As Object

Private Sub Form_Load()
    Dim sURL As String
    
    'This fail
    sURL = "http://www.taringa.net/rss/home/ultimos-posts/"
    
    'This ok if Doc.validateOnParse = False
    'sURL = "http://ezrss.it/feed/"
    
    
    'This ok
    'sURL = "http://d.yimg.com/ar.rss.news.yahoo.com/rss/insolitas"
    
    'Set Doc = New DOMDocument
    Set Doc = CreateObject("Msxml2.DOMDocument.3.0") 'or "Microsoft.XMLDOM"
    
    Doc.resolveExternals = False
    Doc.async = False
    Doc.validateOnParse = False

 
    If Doc.Load(sURL) Then
        Debug.Print Doc.xml
    Else
        Debug.Print Doc.parseError
    End If
End Sub
12  Programación / Programación Visual Basic / Conversión de fecha (PubDate) en: 6 Junio 2011, 06:32 am
Hola alguien necesito pasar una tipo de fecha PubDate (son las que vienen los rss, feed, atom etc) pero bueno mirando un poco vi que tienen muchos formatos diferentes y no se bien si estoy haciendo lo correcto
por el momento hice esta función pero tengo problema con los dos últimos formatos
(2011-06-06T06:16:42+02:00    Y    2011-06-05T21:46:13Z) alguien conoce otra forma o como mejorar esta.

Código:
Option Explicit

Private Type TIME_ZONE_INFORMATION
   Bias As Long
   Reserved(0 To 169) As Byte
End Type
Private Declare Function GetTimeZoneInformation Lib "kernel32" (lpTimeZoneInformation As TIME_ZONE_INFORMATION) As Long
       
Private Sub Form_Load()

Debug.Print PubDateToVBDate("Sun, 05 Jun 2011 07:57:15 PDT")
Debug.Print PubDateToVBDate("Sun, 05 Jun 2011 22:06:29 GMT")
Debug.Print PubDateToVBDate("2011-06-05 21:35:26")
Debug.Print PubDateToVBDate("Sun, 05 Jun 2011 13:52:53 PST")
Debug.Print PubDateToVBDate("2011-06-06T06:16:42+02:00")
Debug.Print PubDateToVBDate("2011-06-05T21:46:13Z")


End Sub


Private Function PubDateToVBDate(ByVal sPubDate As String) As Date
    Dim TZI As TIME_ZONE_INFORMATION

    Dim sDate As String
    Dim lRet As Long
    lRet = InStr(sPubDate, ", ")
    If lRet Then
        sDate = Mid$(sPubDate, InStr(sPubDate, ", ") + 2)
    Else
        sDate = sPubDate
    End If

    If InStrRev(sDate, " ") <> InStr(sDate, " ") Then
        sDate = Left$(sDate, InStrRev(sDate, " "))
    End If
    GetTimeZoneInformation TZI
    sDate = DateAdd("h", -(TZI.Bias / 60), CDate(sDate))
    If InStr(sPubDate, "PDT") Then sDate = DateAdd("h", 7, sDate)
    If InStr(sPubDate, "PST") Then sDate = DateAdd("h", 8, sDate)
    PubDateToVBDate = sDate
End Function
13  Programación / Programación Visual Basic / [Reto]Punto A Punto en: 15 Mayo 2011, 02:01 am
Buenas para darle un poco mas de emoción al foro voy a proponer un nuevo Reto, el cual lo veo super difícil, según mi punto de vista hay que usar mucha lógica, este reto va a durar un mes o menos si alguien lo resuelve.  asi que le voy a poner una chincheta hasta que se termine.

Les paso a explicar en que consiste:
Situados dos puntos "A" y "B"  debe crearse un Array de puntos (POINTAPI) desde "A" hacia "B" lo cual no es muy difícil, el reto sera que abra un obstáculo de por medio el cual debera esquivar este obstáculo sera una Región (CreateRectRgn, CreateEllipticRgn, CreateRoundRectRgn, etc) para detectar si hay colición podemos utilizar el api
Código
  1. Private Declare Function PtInRegion Lib "gdi32" (ByVal hRgn As Long, ByVal x As Long, ByVal y As Long) As Long

para tener una idea mejor muestro un ejemplo (no optimizado) de como seria "el puto "A" al "B" sin el obstaculo.

(Agregar dos CommandButton a un formulario bien separados)
Código
  1. Option Explicit
  2.  
  3. Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
  4.  
  5. Private Type POINTAPI
  6.    X As Long
  7.    Y As Long
  8. End Type
  9.  
  10. Private Sub Form_Load()
  11.    Dim i As Long
  12.    Dim PT1 As POINTAPI
  13.    Dim PT2 As POINTAPI
  14.    Dim mPT() As POINTAPI
  15.  
  16.    Me.ScaleMode = vbPixels
  17.  
  18.    Command1.Caption = "A"
  19.    Command2.Caption = "B"
  20.  
  21.    PT1.X = Command1.Left
  22.    PT1.Y = Command1.Top
  23.  
  24.    PT2.X = Command2.Left
  25.    PT2.Y = Command2.Top
  26.  
  27.    CreatePointLine PT1, PT2, mPT
  28.  
  29.    Me.Show
  30.  
  31.    For i = 0 To UBound(mPT)
  32.        Command1.Move mPT(i).X, mPT(i).Y
  33.        DoEvents
  34.        Sleep 5
  35.    Next
  36.  
  37. End Sub
  38.  
  39.  
  40. Private Function CreatePointLine(PT1 As POINTAPI, PT2 As POINTAPI, DestPT() As POINTAPI)
  41.    Dim X As Long, Y As Long
  42.    Dim i As Long, j As Long
  43.  
  44.    X = Abs(PT2.X - PT1.X)
  45.    Y = Abs(PT2.Y - PT1.Y)
  46.  
  47.    If X > Y Then
  48.        ReDim DestPT(X)
  49.        For i = PT1.X To PT1.X + X
  50.  
  51.            If PT1.X > PT2.X Then
  52.                DestPT(j).X = PT1.X - j
  53.            Else
  54.                DestPT(j).X = PT1.X + j
  55.            End If
  56.  
  57.            If PT1.Y > PT2.Y Then
  58.                DestPT(j).Y = PT1.Y - (Y * (j * 100 / X) / 100)
  59.            Else
  60.                DestPT(j).Y = PT1.Y + (Y * (j * 100 / X) / 100)
  61.            End If
  62.            j = j + 1
  63.        Next
  64.    Else
  65.        ReDim DestPT(Y)
  66.        For i = PT1.Y To PT1.Y + Y
  67.  
  68.            If PT1.Y > PT2.Y Then
  69.                DestPT(j).Y = PT1.Y - j
  70.            Else
  71.                DestPT(j).Y = PT1.Y + j
  72.            End If
  73.  
  74.            If PT1.X > PT2.X Then
  75.                DestPT(j).X = PT1.X - (X * (j * 100 / Y) / 100)
  76.            Else
  77.                DestPT(j).X = PT1.X + (X * (j * 100 / Y) / 100)
  78.            End If
  79.            j = j + 1
  80.        Next
  81.    End If
  82. End Function

como ven crea un array de puntos de "A" hasta "B" ahora les dejo un prototipo para empezar a crear una funcion similar con una Region la cual devera esquivar para poder llegar al punto "B"

Código
  1. Option Explicit
  2. Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As Any, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
  3. Private Declare Function FillRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long) As Long
  4. Private Declare Function GetStockObject Lib "gdi32" (ByVal nIndex As Long) As Long
  5. Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
  6. Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
  7. Private Declare Function PtInRegion Lib "gdi32" (ByVal hRgn As Long, ByVal x As Long, ByVal y As Long) As Long
  8.  
  9. Private Type POINTAPI
  10.    x As Long
  11.    y As Long
  12. End Type
  13.  
  14. Private Sub Form_Load()
  15.    Dim i As Long
  16.    Dim PT1 As POINTAPI
  17.    Dim PT2 As POINTAPI
  18.    Dim mPT() As POINTAPI
  19.    Dim hRgn As Long
  20.  
  21.    With Me
  22.        .AutoRedraw = True
  23.        .ScaleMode = vbPixels
  24.        .Width = 10000
  25.        .Height = 10000
  26.    End With
  27.  
  28.    Command1.Move 350, 50, 32, 32: Command1.Caption = "A"
  29.    Command2.Move 400, 570, 32, 32: Command2.Caption = "B"
  30.  
  31.    hRgn = CreateRegion
  32.    FillRgn Me.hdc, hRgn, GetStockObject(4)
  33.  
  34.  
  35.    PT1.x = Command1.Left
  36.    PT1.y = Command1.Top
  37.  
  38.    PT2.x = Command2.Left
  39.    PT2.y = Command2.Top
  40.  
  41.  
  42.  
  43.    '---------- Esta función es el reto-----------
  44.    'CreatePointLine hRgn, PT1, PT2, mPT
  45.    '---------------------------------------------
  46.  
  47.    Me.Show
  48.    On Error Resume Next
  49.    For i = 0 To UBound(mPT)
  50.        Command1.Move mPT(i).x, mPT(i).y
  51.        DoEvents
  52.        Sleep 5
  53.    Next
  54.  
  55.    DeleteObject hRgn
  56. End Sub
  57.  
  58. ' La funcion del Reto
  59. Private Function CreatePointLine(ByVal hRgn As Long, PT1 As POINTAPI, PT2 As POINTAPI, DestPT() As POINTAPI) As Boolean
  60.    '---------
  61. End Function
  62.  
  63. Private Function CreateRegion() As Long
  64.    Dim PT(0 To 9) As POINTAPI
  65.  
  66.    PT(0).x = 170: PT(0).y = 203
  67.    PT(1).x = 310: PT(1).y = 287
  68.    PT(2).x = 398: PT(2).y = 192
  69.    PT(3).x = 403: PT(3).y = 301
  70.    PT(4).x = 560: PT(4).y = 217
  71.    PT(5).x = 457: PT(5).y = 375
  72.    PT(6).x = 551: PT(6).y = 506
  73.    PT(7).x = 375: PT(7).y = 425
  74.    PT(8).x = 164: PT(8).y = 492
  75.    PT(9).x = 275: PT(9).y = 339
  76.  
  77.    CreateRegion = CreatePolygonRgn(PT(0), 10, 1)
  78. End Function
  79.  

Aqui una imagen de lo que deberia hacer



para culminar, el objetivo es tratar de que funcione, luego se evaluara la velocidad en generar el array, y cual es la que genere el array mas preciso para llegar del punto A al B
14  Programación / Programación Visual Basic / [RETO] GetMaskColor en: 25 Marzo 2011, 17:48 pm
Hola esta es una función que debo realizar así que la pongo como un reto para quienes estén aburridos, les cuento de que se trata, la idea es obtener el color de mascara de una imagen, como pueden ver en la siguiente

a simple vista reconocemos que es un color Magenta, lo que intentaremos es obtenerlo mediante código, para no complicar las cosas usaremos un PictureBox sin bordes (BordeStyle = none), AutoSize = True  y ScaleMode = vbPixels
para obtener el color utilizaremos el api GetPixel
Código:
Private Declare Function GetPixel Lib "gdi32.dll" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long

entonces en el picture pondremos una de las imagenes que se encuentran abajo de todo.
la imagen es una tira de iconos, nosotros debemos verificar en cada esquina de ese icono cual es el color, el color que se repita mas veces sera el color de mascara
como muestro en esta imagen
con puntos azules y rojos son los puntos donde debemos comprobar el color almacenarlo en algún array o lo que sea y luego ir sumando para al final ver cual es el que se repitio mas veces.












como son todos iconos cuadrados una ayuda para obtener el tamaño de cada icono y la cantidad de iconos
Código:
Private Sub Form_Load()
    Dim lWidth As Long
    Dim lHeight As Long
    Dim NumIcon As Long

    lWidth = (Picture1.ScaleWidth \ Picture1.ScaleHeight)
    If lWidth = 0 Then lWidth = 1
    lWidth = Picture1.ScaleWidth \ lWidth
    lHeight = Picture1.ScaleHeight
   
    NumIcon = Picture1.ScaleWidth \ lWidth
   
    Debug.Print lWidth, lHeight, NumIcon
End Sub
15  Programación / Programación Visual Basic / [Proyecto]Facebook Photo Uploader en: 9 Marzo 2011, 04:10 am
Se trata de un proyecto para subir imagenes a facebook directamente con un click en las imagenes de tu ordenardor sin entrar a la pagina en Facebook

Leer más - Descargar

Se necesitan tester.

16  Programación / Programación Visual Basic / obligar el FocusRect en: 8 Marzo 2011, 00:39 am
Buenas,  alguien sabe como habilitar el FocusRect en los checkbox o controles similares cuando están presente los temas de windows, se que es posible porque alguien en algun foro  puso el código, creo que era con sendmessage o setwindowlong (sin subclasificar)
me refiero a los puntitos cuando el control toma el foco

17  Programación / Programación Visual Basic / Command$ extraer archivos. en: 13 Febrero 2011, 18:43 pm
Hola una pregunta, como puedo obtener la lista de archivos de la linea de argumentos Command$

por ejemplo:
Código:
C:\Proyecto1.exe "C:\reto 123.exe" C:\imagen.png

cuando la ruta de un archivo tiene espacio windows pone " , de lo contrario solo separa un archivo de otro con espacios

cual es la logica para estraer los archivos de la linea de comando.

Saludos.
18  Seguridad Informática / Análisis y Diseño de Malware / Consulta sobre inyeccion y detección en: 12 Enero 2011, 12:54 pm
Hola tengo una duda acerca de la heurística de los AV, supongamos que una Aplicación "A" hace una inyeccion de una Aplicación "B", digamos que la App A no es detectada pero la App B si por los AV, en ningún momento se escribe la Aplicación "B" en el disco rígido todo se maneja en memoria, es posible que los AV detecten esto?
digamos los AV que conozco detecta un archivo malicioso antes de ejecutarse, puede ser que los detecte ejecutandose por hacer algo sospechoso?

si es así, que antivirus conocen ustedes que detecte un código malicioso en ejecución?

Saludos.
19  Programación / Programación Visual Basic / Alternativa a keybd_event ? en: 6 Enero 2011, 03:30 am
Buenas alguien conoce una api o alternativa a keybd_event  (Que no sea SendKeys o SendMessage)

SAludos.
20  Programación / Programación Visual Basic / [Source] Efecto Luvia de TV en: 14 Diciembre 2010, 01:14 am
Hola como parte de mi aburrimiento hice este módulo para crear un efecto lluvia de TV, no se si tenga alguna utilidad para alguien pero bueno es para ir aprendiendo un poco mas.

Módulo
Código
  1. Option Explicit
  2. 'Autor: Leandro Ascierto
  3. 'Web: www.leandroascierto.com.ar
  4. Private Declare Function waveOutOpen Lib "winmm.dll" (lphWaveOut As Long, ByVal uDeviceID As Long, lpFormat As WAVEFORMATEX, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Long
  5. Private Declare Function waveOutPrepareHeader Lib "winmm.dll" (ByVal hWaveOut As Long, lpWaveOutHdr As WAVEHDR, ByVal uSize As Long) As Long
  6. Private Declare Function waveOutWrite Lib "winmm.dll" (ByVal hWaveOut As Long, lpWaveOutHdr As WAVEHDR, ByVal uSize As Long) As Long
  7. Private Declare Function waveOutUnprepareHeader Lib "winmm.dll" (ByVal hWaveOut As Long, lpWaveOutHdr As WAVEHDR, ByVal uSize As Long) As Long
  8. Private Declare Function waveOutClose Lib "winmm.dll" (ByVal hWaveOut As Long) As Long
  9. Private Declare Function waveOutReset Lib "winmm.dll" (ByVal hWaveOut As Long) As Long
  10.  
  11. Private Const WHDR_DONE = &H1
  12. Private Const WAVE_MAPPER = -1&
  13.  
  14. Private Type WAVEHDR
  15.    lpData As Long
  16.    dwBufferLength As Long
  17.    dwBytesRecorded As Long
  18.    dwUser As Long
  19.    dwFlags As Long
  20.    dwLoops As Long
  21.    lpNext As Long
  22.    Reserved As Long
  23. End Type
  24.  
  25. Private Type WAVEFORMATEX
  26.    wFormatTag As Integer
  27.    nChannels As Integer
  28.    nSamplesPerSec As Long
  29.    nAvgBytesPerSec As Long
  30.    nBlockAlign As Integer
  31.    wBitsPerSample As Integer
  32.    cbSize As Integer
  33. End Type
  34.  
  35. Private Declare Function CreatePatternBrush Lib "gdi32" (ByVal hBitmap As Long) As Long
  36. Private Declare Function FillRect Lib "user32" (ByVal Hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long
  37. Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
  38. Private Declare Function CreateBitmap Lib "gdi32" (ByVal nWidth As Long, ByVal nHeight As Long, ByVal nPlanes As Long, ByVal nBitCount As Long, lpBits As Any) As Long
  39. Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
  40.  
  41. Private Type RECT
  42.    Left As Long
  43.    Top As Long
  44.    Right As Long
  45.    Bottom As Long
  46. End Type
  47.  
  48. Private hWaveOut As Long
  49. Private bStop As Boolean
  50.  
  51. Public Sub StopAnimation()
  52.    bStop = True
  53.    If hWaveOut Then waveOutReset hWaveOut
  54. End Sub
  55.  
  56. Public Sub Play(ByVal Hdc As Long, Left As Long, ByVal Top As Long, ByVal Width As Long, ByVal Height As Long)
  57.    Dim OutFormat As WAVEFORMATEX
  58.    Dim lngBufferSize As Long
  59.    Dim Rec As RECT
  60.    Dim bData() As Byte
  61.    Dim wvhdr As WAVEHDR
  62.    Dim i As Long
  63.  
  64.    With OutFormat
  65.        .wFormatTag = 1
  66.        .nSamplesPerSec = 8000
  67.        .wBitsPerSample = 16
  68.        .nChannels = 1
  69.        .nBlockAlign = 2
  70.        .nAvgBytesPerSec = 16000
  71.        .cbSize = Len(OutFormat)
  72.    End With
  73.  
  74.    If waveOutOpen(hWaveOut, WAVE_MAPPER, OutFormat, 0, 0, 0) = 0 Then
  75.  
  76.        bStop = False
  77.        lngBufferSize = 16000& * 30&
  78.  
  79.        ReDim bData(lngBufferSize)
  80.  
  81.        For i = 0 To lngBufferSize - 1
  82.            bData(i) = Int((255 + 1) * Rnd())
  83.        Next
  84.  
  85.        With wvhdr
  86.            .lpData = VarPtr(bData(0))
  87.            .dwBufferLength = lngBufferSize
  88.        End With
  89.  
  90.        With Rec
  91.            .Left = Left
  92.            .Top = Top
  93.            .Right = Left + Width
  94.            .Bottom = Top + Height
  95.        End With
  96.  
  97.        If waveOutPrepareHeader(hWaveOut, wvhdr, Len(wvhdr)) = 0 Then
  98.  
  99.            While bStop = False
  100.                If waveOutWrite(hWaveOut, wvhdr, Len(wvhdr)) = 0 Then
  101.                    While ((wvhdr.dwFlags And WHDR_DONE) <> WHDR_DONE)
  102.                        Draw Hdc, Rec
  103.                        DoEvents
  104.                        Sleep 10
  105.                    Wend
  106.                End If
  107.            Wend
  108.  
  109.            waveOutUnprepareHeader hWaveOut, wvhdr, Len(wvhdr)
  110.  
  111.        End If
  112.  
  113.        waveOutClose hWaveOut
  114.    End If
  115.  
  116.    hWaveOut = 0
  117.  
  118. End Sub
  119.  
  120. Private Sub Draw(Hdc As Long, R As RECT)
  121.    Dim hBitmap As Long, mBrush As Long
  122.    Dim PicBits() As Byte, BytesPerLine As Long
  123.    Dim i As Long, lColor As Byte
  124.    Dim W As Long, H As Long
  125.  
  126.  
  127.    W = (150 * Rnd() + 100)
  128.    H = (150 * Rnd() + 100)
  129.  
  130.    BytesPerLine = (W * 3 + 3) And &HFFFFFFFC
  131.  
  132.    ReDim PicBits(1 To BytesPerLine * H * 3) As Byte
  133.  
  134.    For i = 1 To UBound(PicBits) - 4 Step 4
  135.        lColor = Int((255 + 1) * Rnd())
  136.        PicBits(i) = lColor
  137.        PicBits(i + 1) = lColor
  138.        PicBits(i + 2) = lColor
  139.    Next
  140.  
  141.    hBitmap = CreateBitmap(W, H, 1, 32, PicBits(1))
  142.  
  143.    mBrush = CreatePatternBrush(hBitmap)
  144.  
  145.    FillRect Hdc, R, mBrush
  146.  
  147.    DeleteObject mBrush
  148.    DeleteObject hBitmap
  149.  
  150. End Sub
  151.  

En un formulario con dos botones
Código
  1. Option Explicit
  2.  
  3. Private Sub Form_Load()
  4.    Command1.Caption = "Play"
  5.    Command2.Caption = "Stop"
  6. End Sub
  7.  
  8. Private Sub Command1_Click()
  9.    Call Play(Me.Hdc, 0, 0, Me.ScaleWidth / Screen.TwipsPerPixelX, Me.ScaleHeight / Screen.TwipsPerPixelY)
  10. End Sub
  11.  
  12. Private Sub Command2_Click()
  13.    StopAnimation
  14. End Sub
  15.  
  16. Private Sub Form_Unload(Cancel As Integer)
  17.    StopAnimation
  18. End Sub


Páginas: 1 [2] 3 4 5 6 7 8 9 10
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines