MAGICの終了を判断する
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
FBS
投稿数: 13
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
V7.1B2で「Escキー」や「X:終了」でMAGICが終了されたかどうかを判断したいのですがうまくいきません。
V9ではメインプログラムのタスク後処理で「KBGET関数」を使って戻りが「'Esc'KBD」や「'X:終了'ACT」が返ってくるので簡単に認識できます。
V7では「CTL特性」の「終了プログラム」にバッチプログラムを指定し、その中で「KBGET関数」を使って直前のキーやアクションを認識しようとしているのですが、なぜかいつも戻り値は「'次項目'ACT」になってしまいます。
他のアプリケーションに移動する為に、今のアプリケーションが終了されるのか、MAGIC自体を終了させたのかを区別したいので「KBGET関数」にこだわっておりません。何か良い方法があればアドバイス頂きたいと思います。
以上よろしくお願いします。
V9ではメインプログラムのタスク後処理で「KBGET関数」を使って戻りが「'Esc'KBD」や「'X:終了'ACT」が返ってくるので簡単に認識できます。
V7では「CTL特性」の「終了プログラム」にバッチプログラムを指定し、その中で「KBGET関数」を使って直前のキーやアクションを認識しようとしているのですが、なぜかいつも戻り値は「'次項目'ACT」になってしまいます。
他のアプリケーションに移動する為に、今のアプリケーションが終了されるのか、MAGIC自体を終了させたのかを区別したいので「KBGET関数」にこだわっておりません。何か良い方法があればアドバイス頂きたいと思います。
以上よろしくお願いします。
投票数:0
平均点:0.00
kawabata
居住地: 群馬
投稿数: 86
![一人前 一人前](../../uploads/rank3dbf8ea81e642.gif)
こんにちは。
本件、他のアプリを呼び出してMAGICを終えられればよい、ということでしょうか?
それならば、単純にそうしたいタイミングで、
・OSコマンドでアプリを起動
・アクションで[X:終了]を発行
でよいと思います。
終了プログラムでアプリを起動したい理由があり、KBGETが思うように働かないということならば、他に利用できそうな判断材料としては、
INIPUT,INIGETを利用してINIファイルにフラグを書き込むか、あるいは専用のワークファイルを用意するという形でどうでしょうか?
いずれにしても、アプリを呼び出すためのフラグを書き込んでおき、これを終了プログラム内で読み取る、ということになります。
(開始プログラムを利用して、このフラグをOFFにする必要もあります)
本件、他のアプリを呼び出してMAGICを終えられればよい、ということでしょうか?
それならば、単純にそうしたいタイミングで、
・OSコマンドでアプリを起動
・アクションで[X:終了]を発行
でよいと思います。
終了プログラムでアプリを起動したい理由があり、KBGETが思うように働かないということならば、他に利用できそうな判断材料としては、
INIPUT,INIGETを利用してINIファイルにフラグを書き込むか、あるいは専用のワークファイルを用意するという形でどうでしょうか?
いずれにしても、アプリを呼び出すためのフラグを書き込んでおき、これを終了プログラム内で読み取る、ということになります。
(開始プログラムを利用して、このフラグをOFFにする必要もあります)
投票数:0
平均点:0.00
FBS
投稿数: 13
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
ご回答ありがとうございます。
わかりにくくて申し訳ございません。
現在アプリケーション一覧に3つのアプリケーションが登録されています。(EXCEL等ではなくMAGICのアプリケーションです)
要望として、MAGICが終了された時をログアウトと認識させ、その時だけログアウトの処理をさせたいというものがあります。
そこで、CTL特性の「終了プログラム」でバッチプログラムを起動させるようにしましたが、「終了プログラム」はMAGICを終了させたときだけでなく、アプリケーション一覧に登録されている他のアプリケーションをオープンしたときも通ってしまうため、何とかMAGICの終了によるものなのか、アプリケーション間の移動によるものなのかを判断したいと思っている次第です。
今MAGICのアプリケーション一覧にA、Bと二つのアプリが登録されているとします。Aアプリに入っているときの終了プログラムの中で次にBアプリへ遷移しようととしているのか、MAGICを終了しようとしているのかを判断する方法がないか、ということなのです。
ご指摘の通りINIファイルやワークファイルを使って制御しようと考えているのですが、どうもうまくいきません。
補足のアドバイスが頂けましたら是非お願いいたします。
わかりにくくて申し訳ございません。
現在アプリケーション一覧に3つのアプリケーションが登録されています。(EXCEL等ではなくMAGICのアプリケーションです)
要望として、MAGICが終了された時をログアウトと認識させ、その時だけログアウトの処理をさせたいというものがあります。
そこで、CTL特性の「終了プログラム」でバッチプログラムを起動させるようにしましたが、「終了プログラム」はMAGICを終了させたときだけでなく、アプリケーション一覧に登録されている他のアプリケーションをオープンしたときも通ってしまうため、何とかMAGICの終了によるものなのか、アプリケーション間の移動によるものなのかを判断したいと思っている次第です。
今MAGICのアプリケーション一覧にA、Bと二つのアプリが登録されているとします。Aアプリに入っているときの終了プログラムの中で次にBアプリへ遷移しようととしているのか、MAGICを終了しようとしているのかを判断する方法がないか、ということなのです。
ご指摘の通りINIファイルやワークファイルを使って制御しようと考えているのですが、どうもうまくいきません。
補足のアドバイスが頂けましたら是非お願いいたします。
投票数:0
平均点:0.00
kawabata
居住地: 群馬
投稿数: 86
![一人前 一人前](../../uploads/rank3dbf8ea81e642.gif)
おはようございます。
てっきりExcelなどの外部のアプリと思い込んでおりました。
失礼しました。
本件、終了プログラムがネックになっているように思えます。
思い切って、終了プログラムではなくイベントで処理してはどうでしょうか?
たとえば、アプリを移動したいときにユーザーアクション19を発行。
イベントで、ユーザーアクション19に対して「アプリを移動するための処理」を実行するよう設定。
ログアウトしたいときにはユーザーアクション20を発行。
イベントで、ユーザーアクション20に対して「ログアウトのための処理」を実行するように設定。
てっきりExcelなどの外部のアプリと思い込んでおりました。
失礼しました。
本件、終了プログラムがネックになっているように思えます。
思い切って、終了プログラムではなくイベントで処理してはどうでしょうか?
たとえば、アプリを移動したいときにユーザーアクション19を発行。
イベントで、ユーザーアクション19に対して「アプリを移動するための処理」を実行するよう設定。
ログアウトしたいときにはユーザーアクション20を発行。
イベントで、ユーザーアクション20に対して「ログアウトのための処理」を実行するように設定。
投票数:0
平均点:0.00
FBS
投稿数: 13
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
kawabataさん、ご回答ありがとうございました。
何とか関数を使って楽したい、と思ったのですが、やはりちょっと難しそうですね。
ご指摘いただいたようにイベントを使う、あるいはユーザにログアウトを明示的にオペレーションしてもらうように交渉してみたりと、もう少し考えてみます。
お忙しい時間を使ってアドバイスいただき、本当にありがとうございました。
何とか関数を使って楽したい、と思ったのですが、やはりちょっと難しそうですね。
ご指摘いただいたようにイベントを使う、あるいはユーザにログアウトを明示的にオペレーションしてもらうように交渉してみたりと、もう少し考えてみます。
お忙しい時間を使ってアドバイスいただき、本当にありがとうございました。
投票数:0
平均点:0.00