#NoTrayIcon
SetBatchLines, -1
Str:="Бегущая строка... "
StrLenght:=StrLen(Str)
SetTimer, ChangeMsgBox, 1
MsgBox,0x40004,Видоизменённый MsgBox,
SetTimer, ScrollText,Off
ExitApp
ChangeMsgBox:
if !(hMsgBox:=DllCall("FindWindow","str","#32770","str","Видоизменённый MsgBox"))
return
SetTimer, ChangeMsgBox, Off
DllCall("SetWindowLong","uint",hMsgBox,"int",-20,"uint",DllCall("GetWindowLong","uint",hMsgBox,"int",-20)|WS_EX_TOOLWINDOW:=0x80) ; ???
DllCall("SetWindowLong","uint",hMsgBox,"int",-16,"uint",DllCall("GetWindowLong","uint",hMsgBox,"int",-16)^WS_CAPTION:=0xC00000)
DllCall("SetWindowPos","uint",hMsgBox,"uint",0,"int",A_ScreenWidth/3,"int",A_ScreenHeight/2-120,"int",A_ScreenWidth/3,"int",240,"uint",0x40)
ControlGet, hbt1, Hwnd,,Button1, ahk_id %hMsgBox%
ControlGet, hbt2, Hwnd,,Button2, ahk_id %hMsgBox%
DllCall("SetWindowPos","uint",hbt1,"uint",0,"int",-3,"int",208-3,"int",A_ScreenWidth/6,"int",30,"uint",0x40)
DllCall("SetWindowPos","uint",hbt2,"uint",0,"int",A_ScreenWidth/6-3,"int",208-3,"int",A_ScreenWidth/6,"int",30,"uint",0x40)
SetTimer, ScrollText,250
Return
ScrollText:
StartPos += StartPos<StrLenght ? 1 : -StrLenght+1
ScrlText:=SubStr(Str,StartPos) . SubStr(Str,1,StartPos)
DllCall("SendMessage","uint",hbt2,"uint",0xC,"uint",0,"uint",&ScrlText)
Return
/*
SWP_SHOWWINDOW = 0x40
WM_SETTEXT = 0xC
*/