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


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
0626
MIZUSHIKIonexit使用時PCシャットダウンでランタイムエラー3解決


MIZUSHIKI

リンク

2017/6/26(Mon) 21:57:43|NO.80416

タイトルの通りなのですが、onexitを使用したソフトを起動したままPCをシャットダウンするとランタイムエラーが発生してPCを終了できなくなってしまっていました。
常駐ソフトの更新をしようとしたら遭遇しました。

;#include "kernel32.as" screen 1 onexit gosub *quit stop *quit end ;ExitProcess 0 //このAPIを使うとシャットダウンで止まらない。 return
ウィンドウIDが1つでも増えると駄目みたいで、screen 1 か onexit の行をコメントアウトすると普通にシャットダウンできました。

http://hsp.tv/play/pforum.php?mode=pastwch&num=28124
上記の記事を参考に ExitProcess を使用してみると正常にシャットダウンされました。
(ただし、リンク先で言われてるようなアプリ終了後にプロセスが残るというわけではなく、アプリが起動したままシャットダウンをかけることでエラーが発生します。)
当面はこの ExitProcess を使って行こうと思うのですが問題はないでしょうか。


このランタイムエラー、手元にあった HSP3.5β5、HSP3.5β3、HSP3.4 で試したところ全てで発生しました。
以前はシャットダウンでランタイムエラーが出るようなことは無かったので、私の方の環境(の変化)に原因があるのではないかと考えています。

【私の環境】
 ・Windows10 pro x64 Creators Update
 ・Windows10 pro x64 Anniversary Update(2台目)

(Creators Update済みかどうかは、http://www.fmworld.net/cs/azbyclub/qanavi/jsp/qacontents.jsp?rid=47&PID=2510-8772 の「設定で確認する方法」等を参照願います。)

皆様の所では、上記のスクリプトを実行 → PCをシャットダウン しても正常に終了されますでしょうか。



この記事に返信する


沢渡

リンク

2017/6/26(Mon) 23:32:17|NO.80418

この現象、私の公開しているソフトでも発生しました。
32bit環境では発生せず、64bit環境でのみ発生する現象で、
onexitのジャンプ先でendすると高確率で発生する模様です。
(HSPの標準ランタイムが64bit環境での動作を想定していないせい?)

私はこの↓サイトを参考に、「onexitで飛んだ先ではフラグをだけを立ててreturnする」
という処理にすることで対処しましたが、これでどうでしょうか?
http://predator.hateblo.jp/entry/2014/07/13/133928

screen 1 flag=0 onexit gosub *quit repeat if flag : break await 33 loop end *quit //ここに終了時に行う処理を書く //onclickやonkey、oncmd等の割り込みを有効にしている場合は、ここで無効にする。 onexit 0 flag=1 return



MIZUSHIKI

リンク

2017/6/27(Tue) 22:23:50|NO.80425

沢渡さん コメントありがとうございます。

紹介して頂いたスクリプトでもシャットダウンされることを確認しました。
ただ、私の作っているソフトではメインループになる箇所を作っていないのでちょっと使用できないみたいです。

ExitProcess で問題なさそうに思うので、そちらを使っていこうかなと思います。


他の方はどうでしょうか。ちゃんとシャットダウンされますでしょうか。

私の勘、というか想像では Windows10のAnniversary Update後、つまりは現在 Windows10のほとんど全ての人がシャットダウンできない問題を抱えているんじゃないかと想像しているんですけど、どうなんでしょう。。。



MIZUSHIKI

リンク

2017/6/28(Wed) 01:55:08|NO.80428

「解決」忘れてましたのでポチリ。

方針は問題ないのかな、ということで一応解決。


ただ、皆様の環境では実際どうなるのかは気になりますので、引き続き情報お待ちしてます。



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