HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0731
初心者HSP以外のウィンドウ サイズ・位置取得6解決


初心者

リンク

2015/7/31(Fri) 12:10:33|NO.70370

これを実行して、Chromeを取得すると、終了時に止まるのですが、なぜかわかりますか?
他のウィンドウは試したところ全て大丈夫でした


#include "user32.as" onexit goto *exit #define NULL 0 pos 100,300 button goto "EXIT",*exit repeat GetForegroundWindow hnd = stat a = "" z = 512 GetWindowText hnd, varptr(a), z FindWindow NULL, ""+a+"" memoWnd = stat if memoWnd == NULL { }else{ gsel 0 redraw 0 dim rect, 4 GetWindowRect memoWnd, varptr(rect) color 255,255,255 boxf color 0,0,0 pos 0,0 mes ""+a+"" mes "座標("+rect(0)+","+rect(1)+")" sizex = rect(2) - rect(0) sizey = rect(3) - rect(1) mes "サイズ("+sizex+","+sizey+")" mes varptr(a) redraw 1 } await 100 loop *exit end



この記事に返信する


kanamaru

リンク

2015/7/31(Fri) 12:44:15|NO.70371

getwindowrectとかその類の命令などはなぜかwebブラウザと相性が悪いので、
それが影響していると思います。
この掲示板のどこかにこのことにふれたスレッドがあったと思います。



初心者

リンク

2015/7/31(Fri) 14:39:07|NO.70375

解決策ありますか?



スペース

リンク

2015/7/31(Fri) 15:40:28|NO.70376

この掲示板のどこかにこのことにふれたスレッドがあったと思いますので、
探してみてください。



mamo

リンク

2015/7/31(Fri) 16:52:19|NO.70377

>終了時に止まる
これってどういう意味?
試してみたけどChromeで座標等取得後も問題なく動作してた。



totori

リンク

2015/7/31(Fri) 21:37:01|NO.70387

そもそも、変数のサイズが足りないような。
GetWindowText関数で512bytesを指定しているのに、
実際は64bytesしか変数の領域を確保していないので
バッファオーバーフローで落ちますよねって。


a = ""
ではなく、

sdim a, 512
とかにしてあげてください。



初心者

リンク

2015/8/1(Sat) 00:29:20|NO.70391

みなさん ありがとうございます
sdim で領域を確保したら、今のところ大丈夫なので とりあえず様子みます



ONION software Copyright 1997-2023(c) All rights reserved.