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


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0730
チャーくんWin10のランタイムエラー5解決


チャーくん

リンク

2015/7/30(Thu) 19:14:51|NO.70339


#include "user32.as" oncmd gosub *WM_ACTIVATE ,0x0006 stop *WM_ACTIVATE if wparam != 0 : BackWindow = GetNextWindow(hwnd,GW_HWNDNEXT) ;wait 50 return
クリックしてもアクティブにならない(ほかのウィンドウの前に出ない)ウィンドウ
を作っていたのですが...
これで実行して、いったん非アクティブにしてからタイトルバーをクリックすると、
ランタイムエラーのループにはまってしまいます。
他の環境ではあるのでしょうか?

Windows 10 Pro x64
HSP3.5 beta2(だったけ…?)

あともしよかったら

クリックしてもアクティブにならない(ほかのウィンドウの前に出ない)ウィンドウ
のアイデアをください



この記事に返信する


kanamaru

リンク

2015/7/30(Thu) 21:02:46|NO.70342

例えば、
http://www.placeark.com/program_hsp_sample_file/SAMPLE_EnableWindow.hsp
はどうですか?
ランタイムエラーについてはわかりません。



tds12

リンク

2015/7/30(Thu) 22:15:33|NO.70349

そのスクリプトでは、
私のWin8.1(x64)環境でも
ランタイムエラーが発生します。

HSPでは、
割り込み(oncmd,buttonなど)で
サブルーチンジャンプしたときに
エラーが発生すると、
ランタイムエラーが発生します。

このスクリプトでのエラー原因は、
GetNextWindowの部分で
user32.as内で関数としても命令としても登録されていないのに
2次元配列変数として参照していることです。

GetNextWindow関数はuser32.dllの関数ではなく、
WindowsのSDK内で、#defineされたもののようです。


#define GetNextWindow(%1,%2) GetWindow %1,%2 #define GW_HWNDNEXT $00000002
を#includeの下に追加して、
if wparam != 0
の部分を

if wparam != 0 { GetNextWindow hwnd,GW_HWNDNEXT BackWindow = stat }
のように書き換えるとよいでしょう。



刹那

リンク

2015/7/30(Thu) 22:19:37|NO.70350

更新ボタン押したりとか 再起動したりなどしてみてはどうでしょうか 
 



チャーくん

リンク

2015/7/31(Fri) 10:10:50|NO.70368

>kanamaruさん
検索して見つけたんですが…
これだとクリックしても反応しなくなってしまうんです…

>刹那さん
今朝もう一回やってみましたが、やはりランタイムエラーでした。

>tds 12さん
なるほど…user32.as内では命令として登録されていなかったのですね。
つまり「文法が間違っています」ということだったのですか。

みなさん回答ありがとうございました。



skyblue

リンク

2015/7/31(Fri) 14:08:32|NO.70373

Windows10は公式サポート対処外です。
そのうえ、64bitは公式ではあまり対応していません。
なので、使うとしたら自己責任です。なんかあって報告するのはありです。



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