Cómo lograr una fluctuación de ventana infinita en VB
Nota: 1. Este programa se oculta cuando se ejecuta, pero no oculta el proceso (es difícil hacerlo en XP, así que déjalo).
2. Si quieres); Para aumentar la amplitud de la fluctuación, modifique el valor de jd.
'====Código del cuadro de ventana====
Opción explícita
Tipo privado PUNTO
x Mientras
p>y As Long
Tipo final
Tipo privado RECT
LeftAs Long
Arriba As Long
Derecho mientras
Abajo mientras
Tipo de fin
Función de declaración privada GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) Mientras
Función de declaración privada GetForegroundWindow Lib "user32" () Mientras
Función de declaración privada SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Función de declaración privada MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
Dim r As RECT, mPOINT As POINT, bj As Long
Función GetYd (r Mientras, centroX Mientras, centroY Mientras, centroY Mientras) Mientras
Función GetYd(r Mientras, centroX Mientras, centroY Mientras, centroY Mientras, centroY Mientras) CentroX As Long, CenterY As Long, jd As Integer) 'Encuentra las coordenadas de un punto en el círculo
mPOINT.x = CenterX r * Cos(jd * 5)
mPOINT. y = CentroY r * Sin(jd * 5)
Función final
Sub privada Form_Load()
Me.Hide
Temporizador1 .Interval = 100
Timer1.Enabled = True
Me.Hide
Timer1.Interval = 100
Timer1.Enabled = True
Temporizador1.Es
abled = TrueEnabled = True
bj = 50 'Si desea aumentar la amplitud de la fluctuación, cambie el valor jd
End Sub
Private Sub Timer1_Timer( )
Estático i como entero
Dim p mientras, x mientras, y mientras
p = GetForegroundWindow<
GetWindowRect p, r
x = r.Left
y = r.Top
GetYd bj, x, y, i 'Deja que la ventana tenga una fluctuación circular como QQ
MoveWindow p, mPOINT.x, mPOINT.y, r.Derecha - r.Izquierda, r.Abajo - r.Arriba, 1 'Mover ventana
GetWindowRect p, r
x = r.Top.Top, 1 'Mover la ventana
i = i 1
Si i gt 360 Entonces i = 1 'Si es; mayor que 360 entonces i = 1 'Si es mayor que 360 entonces muévete desde arriba
End Sub
Mueve la ventana.