「外部ウィンドウ」とは、今実行しているソフトとは異なるソフトのウィンドウということでしょうか?
ウィンドウのハンドルがわかればGetWindowRectで位置や大きさは取得できると思います。
とりあえず、クリックしたウィンドウのハンドルを取得して位置と大きさを表示するプログラムです。
//「情報取得」ボタンを押したあと、好きなウィンドウをクリックすれば、そのウィンドウの位置と大きさが表示されます。
#include "user32.as"
dim point,2
dim rect,4
onclick gosub *click
onclick 0
pos 0,0 : button gosub "情報取得",*start
b_id=stat
stop
*start
objenable b_id,0 //ボタンを一時無効に
SetCapture hwnd //マウスキャプチャ開始(画面のどこからでもクリックを認識できるようにする)
onclick 1
return
*click
GetCursorPos varptr(point) //マウスカーソルの位置をスクリーン座標で取得
WindowFromPoint point(0),point(1) //マウスのある場所のウィンドウのハンドルを取得
hwnd0=stat
if hwnd0 { //返り値が0の場合はウィンドウが無いので実行しない。
GetWindowRect hwnd0,varptr(rect) //配列rectにはウィンドウの左上のX・Y座標と右下のX・Y座標が入る
if stat {
x=rect(0) : y=rect(1) : w=rect(2)-rect(0) : h=rect(3)-rect(1)
color 255,255,255 : boxf
color 0,0,0 : pos 0,30
mes "座標:("+str(x)+","+str(y)+")"
mes "サイズ:"+str(w)+"×"+str(h)
}
}
ReleaseCapture //マウスキャプチャ終了
objenable b_id,1 //ボタンを有効に
onclick 0
return