ほら、マルチモニタだったりするとuwsファイルをダブルクリックした画面と違う方にmsgboxが出てきたりするじゃない
そっちじゃねぇよってなる
だからマウスのあるモニタの番号をゲットしようっていう
msgbox( "Your mouse is on monitor: " + GetMousePointedMonitor() ) function GetMousePointedMonitor() result = 0 for result = 0 to monitor() - 2 MON_LEFT = monitor(result, MON_X) MON_RIGHT = monitor(result, MON_WIDTH) + MON_LEFT MON_TOP = monitor(result, MON_Y) MON_BOTTOM = monitor(result, MON_HEIGHT) + MON_TOP isMouseOnScreen = MON_LEFT <= G_MOUSE_X isMouseOnScreen = (G_MOUSE_X <= MON_RIGHT) and isMouseOnScreen isMouseOnScreen = (MON_TOP <= G_MOUSE_Y) and isMouseOnScreen isMouseOnScreen = (G_MOUSE_Y <= MON_BOTTOM) and isMouseOnScreen if isMouseOnScreen then break next fend
単にマウス座標がどのモニタ内にあるか一つ一つ調べるっていう
わりと力技でしたね
そんでこれ
for result = 0 to monitor() - 2
でなんで-2してるかっつうと
・モニタが1つしかなければそもそもループに入らない(※)
・ループの最後まで行ったら最後のモニタで確定なのでループ内の処理を行う必要がない
からです
forの仕様をね、うまくつかってね、かしこく書いたよ!ほめて!
みたいなあれなんですが、多分こういう書き方ってほんとは良くない
※ループに入らないとresultに値が代入されないので最初にresult=0してるのがちょっとくやしい
あれ、、、手元の環境では、result = 0なくても動作するみたい、、、?
PtInRect使えば力技感が少し減るかもしれません(ほとんど詭弁)
あと、、、「かしこく」は「トリッキーに」の間違いかなー(トリッキー、趣味なら大歓迎!)