Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - LeandroA

#101
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
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
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
#102
Cita de: F3B14N en 11 Marzo 2011, 18:01 PM

Funciona sin problemas, simplemente pon Sub Main como objeto inicial y desde ahi inicia el/los forms normalmente. Recorda llamar InitCurrentThread en cada nuevo thread también.

Hola la verdad no entiendo el codigo y me cierra todo con error cuando llamo a InitCurrentThread

como aplicas eso con las apis de inet?
#103
Gracias por los comentarios, bueno me olvide mencionar que no esta aplicado lo del Proxy, ya que no tengo forma de probarlo, alguien sabe si existe alguna aplicación para instalar en la pc que trabaje como proxy , o bien algunos ejemplos de como implentarlo segun muestra el formulario de configuración?

@raul338  me mataste con eso, tendria que verlo, pero bueno creo que las personas como tu quedan fuera del uso de la aplicacion  :D :D :D

@F3B14N  si seria lo correcto, pero la verdad no le tengo mucha fe a vb con el uso de threads  seria un gran dolor de cabeza.

@XXX-ZERO-XXX  gracias por los consejos, se pueden implementar sin problemas, y si la verdad el msgbox es bastante feo  :-\

@BlackZeroX▓▓▒▒░░   gracias igual  :¬¬ :¬¬                 ;D



#104
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.

#105
hola dos opciones

Option Explicit
Private Declare Function WaitMessage Lib "user32.dll" () As Long
Dim bStop As Boolean

Private Sub main()
    Do While bStop = False
        DoEvents
        WaitMessage
    Loop
End Sub



Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Dim bStop As Boolean

Private Sub main()
    Do While bStop = False
        DoEvents
        Sleep 100
    Loop
End Sub



en ambas cuando quieras salir solo Debes poner bStop = True, supongo que eso lo vas a tener que manejar dentro del timer.

Saludos.
#106
Solucionado, aqui el link
#107
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

#108
hola, por curiosidad para que nececistas el adress de Form_Initialize? si vos estas buscando interceptar la inicializacion de una ventana es combeniente interceptarlo con un hook (fuera del formulario obiamente) digo fuera del formulario porque este aun no se creo, me refiero exactamente a arrancar la aplicacion desde un sub main crear el gancho llamar al form y interceptar el msg WM_CREATE

ejemplo

Option Explicit

Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long

Private Type CWPSTRUCT
    lParam As Long
    wParam As Long
    message As Long
    hwnd As Long
End Type

Private Enum HookConstants
    HC_ACTION = 0
    HC_GETNEXT = 1
    HC_SKIP = 2
    HC_NOREMOVE = 3
    HC_NOREM = HC_NOREMOVE
    HC_SYSMODALOFF = 5
    HC_SYSMODALON = 4
End Enum

Private Const WH_CALLWNDPROC = 4
Private Const WM_CREATE = &H1
Private Const WM_DESTROY As Long = &H2

Private hHook As Long

Private Sub main()
    StartHooking
    Form1.Show
End Sub

Public Function HookProc(ByVal uCode As Long, ByVal wParam As Long, lParam As CWPSTRUCT) As Long

    HookProc = CallNextHookEx(hHook, uCode, wParam, lParam)

    If uCode = HC_ACTION Then
   
        Select Case lParam.message
       
            Case WM_CREATE
                If GetWinClassName(lParam.hwnd) = "ThunderFormDC" Then
                    Debug.Print "Inicializa Form: " & lParam.hwnd
                End If
               
            Case WM_DESTROY
                Call EndHooking
   
        End Select
   
    End If
End Function



Public Sub EndHooking()
    If hHook <> 0 Then
        UnhookWindowsHookEx hHook
        hHook = 0
    End If
End Sub

Public Sub StartHooking()
    hHook = SetWindowsHookEx(WH_CALLWNDPROC, AddressOf HookProc, 0, App.ThreadID)
End Sub


Public Function GetWinClassName(hwnd As Long) As String
    Dim sClass As String * 255, ret&
    sClass = String(255, 0)
    ret = GetClassName(hwnd, ByVal sClass, 255)
    GetWinClassName = Left$(sClass, ret)
End Function
#109
hola si se puede utilizando las apis de Facebook, pero bueno tenes que meterte en el tema. yo estoy haciendo un programa para subir fotos implementandolo desde el menu contextual del explorer pero no estoy utilizando las apis porque necesitas registrarte como aplicacion y otras cosas que desconozco, yo solo estoy utilizando un simple envio de POST html,
como experiencia no te recomiendo sokets ya que gran parte de las peticiones son SSL es mejor utilizar las apis de wininet o algun objeto similar.

Saludos.
#110
?¿?¿ eso era? yo pense en otra cosa totalmente diferente.
este es el mio
http://rapidshare.com/files/449359444/ShowCode.zip

por eso si lo ven se daran cuenta porque me referia al  los eventos y todas las cosas, lo que hace es leer todos los modulos, formularios, clase, etc en el ide luego los almacena en el PropertyBag de un usercontrol, luego cuando se ejecuta tanto sea compilado como desde el IDE muestra lo almacenado en el PropertyBag (que es parte del mismo proyecto)

Saludos.