[Source] T2W v2 [Trojan To Worm]

Iniciado por Karcrack, 5 Marzo 2008, 14:56 PM

0 Miembros y 3 Visitantes están viendo este tema.

[SMT]

hola jeje bueno te vuelvo a hacer las mismas preguntas! :P

1- Me podrias habilitar algo donde me enseñe a hacer los forms asi, osea el tipo de aparecer y desaparecer?

2- bueno y si me podrias explicar un poco lo del about que no lo entnedi muy bien! :-[

disculpa y GraXias!

Salu2's! 8)

Chefito

#11
Nas skullmaster123. Fijate mejor que está muy ordenado y bastante bien estructurado. Lo que hace es llamar a la función transparencia (que te la puedes pillar tu y llamarla igual que hace él en tus programas) en los eventos form1_load (cuando se carga el formulario) y form1_queryunload (espera antes de descargar el formulario). La mejor forma es como lo ha hecho Karcrack....con for...next para aumentar o disminuir el valor alpha de la api SetLayeredWindowAttributes, que es la que produce la transparencia del formulario. Esta api se encuentra a partir de win2000. En los anteriores no funciona esta técnica. Te cuelgo otra forma de hacerlo con dos timers, pero te repito que la mejor forma es la que ha hecho Karcrack:
Const LWA_COLORKEY = &H1
Const LWA_ALPHA = &H2
Const GWL_EXSTYLE = (-20)
Const WS_EX_LAYERED = &H80000
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Ret As Long
Private cont2 As Integer

Private Sub Form_Load()
    cont2 = 255
    Ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
    Ret = Ret Or WS_EX_LAYERED
    SetWindowLong Me.hWnd, GWL_EXSTYLE, Ret
    Timer1.Interval = 1
    Timer2.Interval = 1
    Timer2.Enabled = False
    Timer1.Enabled = True
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Cancel = True
Timer2.Enabled = True
End Sub

Private Sub Timer1_Timer()
    Static cont As Integer
    cont = cont + 5
    If cont > 255 Then
        cont = 0
        Timer1.Enabled = False
    Else
        SetLayeredWindowAttributes Me.hWnd, 0, cont, LWA_ALPHA
    End If
End Sub

Private Sub Timer2_Timer()
    cont2 = cont2 - 5
    If cont2 < 0 Then
        Timer2.Enabled = False
        End
    Else
        SetLayeredWindowAttributes Me.hWnd, 0, cont2, LWA_ALPHA
    End If
End Sub

Si buscas en google "formulario transparente visual basic" te van a salir un millón de páginas con este tema.
Respecto a tu 2º cuestión.....juer......que no es tan dificil. Mirate el código del form6 del programa. Lo único que hace es meter texto en un label poco a poco, utilizando un timer. Examinalo más detenidamente que no es tan dificil.
Siguo diciendo que le ha quedado bonito esas dos cosas ;). Recuerdo cuando yo hacía marquesinas (desplazamiento del texto al estilo cartel) e impresión de texto en mi amstrand 6128 con el basic 1.2......y además le metiamos el sonido de la máquina de escribir cuando se imprimia el caracter!!!! que tiempos.
Saludos.
Moderador del foro oficial de AutoIt en español: www.AutoIt.es.

Todos tenemos inteligencia, lo malo es que algunos no nos acordamos donde la dejamos guardada ;)

Karcrack

Como bien dice Chefito todas tus dudas están en el código.
Quiero advertir también que el formulario 6 (el del about si no recuerdo mal :-\) usa el código que puso MadAntrax :)

[SMT]

disculpen amigos, no era mi intension causar problemas, habia visto algo del code pero me quedaban dudas que me aclaro un poco chefito, de nuevo disculpen y gracias! ;)