FUNCTION GetPoricionX
DECLARE INTEGER ClientToScreen IN user32 INTEGER HWnd, STRING @lpPoint
DECLARE INTEGER GetCaretPos IN user32 STRING @lpPos
DECLARE SetCursorPos IN user32 INTEGER X, INTEGER Y
LOCAL lpPos, lnWHND, lnX, lnY, lnScreenX, lnScreenY
STORE 0 TO lnX, lnY, lnScreenX, lnScreenY
lpPos = SPACE(8)
lnHWND = GetForegroundWindow()
GetCaretPos(@lpPos)
FOR ix=1 TO 4
lnX = m.lnX + ASC(SUBSTR(m.lpPos, m.ix + 0, 1)) * 256 ^ (m.ix - 1)
lnY = m.lnY + ASC(SUBSTR(m.lpPos, m.ix + 4, 1)) * 256 ^ (m.ix - 1)
ENDFOR
ClientToScreen(m.lnHWND, @lpPos)
FOR ix=1 TO 4
lnScreenX = m.lnScreenX + ASC(SUBSTR(m.lpPos, ix + 0, 1)) * 256 ^ (m.ix - 1)
lnScreenY = m.lnScreenY + ASC(SUBSTR(m.lpPos, ix + 4, 1)) * 256 ^ (m.ix - 1)
ENDFOR
SetCursorPos(m.lnScreenX,m.lnScreenY)
RETURN (GetWindLeft() + m.lnX)
ENDFUNC
FUNCTION GetWindLeft
DECLARE INTEGER GetWindowRect IN user32 INTEGER HWnd, STRING @lpRect
STORE 0 TO lnL, lnT, lnR, lnB, ix
lpRect=SPACE(16)
GetWindowRect(GetForegroundWindow(), @lpRect)
FOR ix=1 TO 4
lnL = lnL + ASC(SUBSTR(lpRect, ix + 0, 1)) * 256 ^ (ix - 1)
lnT = lnT + ASC(SUBSTR(lpRect, ix + 4, 1)) * 256 ^ (ix - 1)
lnR = lnR + ASC(SUBSTR(lpRect, ix + 8, 1)) * 256 ^ (ix - 1)
lnB = lnB + ASC(SUBSTR(lpRect, ix + 12, 1)) * 256 ^ (ix - 1)
ENDFOR
RETURN lnL
ENDFUNC