I do not have the Yahoo chat client but try this.
Opt("GUIOnEventMode", 1)
Global Const $hGUI = GUICreate("Shake it by UEZ 2011", 320, 200)
Global Const $idButton = GUICtrlCreateButton("Shake it", 120, 80, 80, 40)
GUISetState()
Global Const $shake_interval = 2 * 1000 ;2 seconds
Global Const $shake_sleep = 30 ;30 ms
Global Const $shake_radius = 30 ;30 pixel
GUISetOnEvent(-3, "_Exit")
GUICtrlSetOnEvent($idButton, "ShakeIt")
Do
Until Not Sleep(0xFFFFFF)
Func ShakeIt()
Local $t = TimerInit()
Local $aPos = WinGetPos($hGUI)
Do
WinMove($hGUI, "", $aPos[0] + Random(-$shake_radius, $shake_radius, 1), $aPos[1] + Random(-$shake_radius, $shake_radius, 1))
Sleep($shake_sleep)
Until TimerDiff($t) > $shake_interval
WinMove($hGUI, "", $aPos[0], $aPos[1])
EndFunc
Func _Exit()
GUIDelete($hGUI)
Exit
EndFunc
Br,
UEZ