新しく発言する EXIT インデックスへ
外部プログラムの利用でApplicationHang

  外部プログラムの利用でApplication Hang 小野 2007/06/24 19:39:59 
  EXECUTEをEXECUTENOWAITに変えたらどうなり... 白石 和夫 2007/06/24 20:24:39 
  早々のご回答ありがとうこざいます。 小野 2007/06/25 14:56:15 
   └NOWAITを指定したときには正常にパラメータ... 白石 和夫 2007/06/25 15:32:35 
    └BASICヘルプにある 白石 和夫 2007/06/25 16:02:24  (修正1回)
     ├CディスクのルートディレクトリーにBASICホ... 小野 2007/06/25 17:26:27 
     │└追伸 小野 2007/06/25 17:41:52 
     └修正版を 白石 和夫 2007/06/25 18:03:51 
      ├早々の修正版ありがとうございます。 小野 2007/06/25 20:03:42 
      └追伸 小野 2007/06/25 21:54:44 
       └EXECUTE文の実行中,「応答なし」になるのは... 白石 和夫 2007/06/26 07:33:30  (修正1回)
        └当初コマンドラインは 小野 2007/06/26 22:44:48 
         └できる場合とできない場合というのは,コマ... 白石 和夫 2007/06/27 09:06:40  (修正1回)
          ├コマンド引数が完全に同じでも、できない場... 小野 2007/06/27 17:48:32 
          └追伸 小野 2007/06/27 19:49:21  (修正1回)
           └BASIC.EXE/ORプログラム名.BAS 白石 和夫 2007/06/27 21:38:21 
            └10EXECUTE"c:\windows\notepad.exe"WITH("C... 小野 2007/06/28 14:47:12 
             └自分の作成したものでは、時々HANGしてしま... 小野 2007/07/01 16:28:13 
              └なぜ,そうなるのか,想像がつきません。い... 白石 和夫 2007/07/04 14:57:59 
               └原点に戻って、VERSION5.9.10をC:\BA... 小野 2007/07/04 22:22:11 
                └現状で唯一想定できるのが,CPUの利用率が1... 白石 和夫 2007/07/05 15:01:26 
                 ├要点は,NOTEPADが開くべきファイルの名前を... 白石 和夫 2007/07/05 15:16:27 
                 ├CPUの利用率は100%に近いことはありませんで... 小野 2007/07/12 20:30:26 
                 │└BASICが起動するとすぐにEXECUTE文を実行す... 白石 和夫 2007/07/17 11:45:28 
                 │ └WAITDELAYで秒数を3〜15秒で試しましたが... 小野 2007/07/17 17:23:02 
                 │  └NOWAITを指定しない場合は,WaitForSingleO... 白石 和夫 2007/07/18 09:28:23 
                 │   ├タスクスケジューラに例Aのプログラムの内容... 小野 2007/07/18 17:38:34 
                 │   ├参考になればですが、 小野 2007/07/18 19:23:32 
                 │   └EXECUTE(NOWAITなし)でWITH句を付けない(起... 小野 2007/07/20 20:31:17 
                 └何度もEXECUTEのみとEXECUTENOWAITでタスク... 小野 2007/07/14 09:03:55  (修正1回)

  外部プログラムの利用でApplication Hang 小野 2007/06/24 19:39:59  ツリーへ

外部プログラムの利用でApplication Hang ノートメニュー
小野 <zmshjkpoty> 2007/06/24 19:39:59
大いに利用させていただいております。
 WINDOWS XP SP2を使用しております。
 10進BASIC VER5.9.9使用しております。
 
外部プログラムの利用(EXCUTE)でEXEファイルを起動する際、EXEファイルの起動時パラメータを,EXECUTE文のWITH句で指定すると、Application Hangが発生する時と発生しない場合があります。
 単独でEXEファイル起動では発生しません。何かよい対処法はございませんでしょうか。
 記述としては
EXECUTE "C:\Documents and Settings\PCUSER\My Documents\バックアップ制御\sprun30\SPRUN.EXE" WITH ("C:\Documents and Settings\PCUSER\My Documents\バックアップ制御\sprun30\8時27分復帰休止.spr")
 のような記述をしております。
 これだけの内容では不十分かもしれませんが、詳細が必要であれば、送信いたします。
 よろしくお願いします。


  EXECUTEをEXECUTENOWAITに変えたらどうなり... 白石 和夫 2007/06/24 20:24:39  ツリーへ

Re: 外部プログラムの利用でApplication Hang ノートメニュー
白石 和夫 <fbdfvqwhki> 2007/06/24 20:24:39
EXECUTEを EXECUTE NOWAIT に変えたらどうなりますか。
EXECUTEは起動したアプリケーションの終了を待つので,起動したアプリケーションが終了しないといつまでも待ってしまいます。

  早々のご回答ありがとうこざいます。 小野 2007/06/25 14:56:15  ツリーへ

Re: 外部プログラムの利用でApplication Hang ノートメニュー
小野 <zmshjkpoty> 2007/06/25 14:56:15
早々のご回答ありがとうこざいます。
 NOWAITでは Hangしませんが、処理の流れとして、EXCUTEのEXE文が終了した後、次のBASICステップの処理をしたいと考えています。
 NOWAITですとEXEファイル終了を待たずに次のステップを実行してしまいます(EXEとBASICが平行処理してしまう)ので、何かEXEファイルが終了したら次のBASICの文を実行できる対処法はありませんでしょうか。WAIT DELAY もありますが、EXEファイルの終了時間が不定期で確定できませんので、悩んでいます。
 

   └NOWAITを指定したときには正常にパラメータ... 白石 和夫 2007/06/25 15:32:35  ツリーへ

Re: 早々のご回答ありがとうこざいます。 ノートメニュー
白石 和夫 <fbdfvqwhki> 2007/06/25 15:32:35
NOWAITを指定したときには正常にパラメータが渡っているとしたらパラメータの受け渡しの問題ではないと思うので,素直に起動したアプリケーションの終了を待つしかないと思います。その間,BASICがハングしたようになってしまうのは仕方ないです。

    └BASICヘルプにある 白石 和夫 2007/06/25 16:02:24  (修正1回) ツリーへ

Re: NOWAITを指定したときには正常にパラメータ... ノートメニュー
白石 和夫 <fbdfvqwhki> 2007/06/25 16:02:24 ** この記事は1回修正されてます
BASICヘルプにある
EXECUTE "c:\windows\notepad.exe" WITH ("C:\BASICw32\README.TXT")
が正しく動作しないので,正常にパラメータが渡っていないとしたら十進BASICのバグの可能性があります。

     ├CディスクのルートディレクトリーにBASICホ... 小野 2007/06/25 17:26:27  ツリーへ

Re: BASICヘルプにある ノートメニュー
小野 <zmshjkpoty> 2007/06/25 17:26:27
 CディスクのルートディレクトリーにBASICホルダーをコピーして、早速試しましたが、EXECUTE "c:\windows\notepad.exe" WITH ("C:\BASICw32\README.TXT")で ファイル.TXTが見つかりません。新しく作成しますかと出てしまいます。
手動でメモ帳からC:\BASICw32\README.TXTは開くことはできます。

     │└追伸 小野 2007/06/25 17:41:52  ツリーへ

Re: CディスクのルートディレクトリーにBASICホ... ノートメニュー
小野 <zmshjkpoty> 2007/06/25 17:41:52
追伸
 EXECUTE "c:\windows\sysmet32\notepad.exe" WITH ("C:\BASICw32\README.TXT")で試しましたが、ファイル.TXTが見つかりません。新しく作成しますかと出てしまいます。
たま、EXECUTE NOWAIT "c:\windows\notepad.exe" WITH ("C:\BASICw32\README.TXT")でも同様でした。

     └修正版を 白石 和夫 2007/06/25 18:03:51  ツリーへ

Re: BASICヘルプにある ノートメニュー
白石 和夫 <fbdfvqwhki> 2007/06/25 18:03:51
修正版を
http://hp.vector.co.jp/authors/VA008683/basicw32.htm
においたので,試してください。

      ├早々の修正版ありがとうございます。 小野 2007/06/25 20:03:42  ツリーへ

Re: 修正版を ノートメニュー
小野 <zmshjkpoty> 2007/06/25 20:03:42
 早々の修正版ありがとうございます。
 早速試しました。
 NOWAITでもTEXTファイル正常に起動しました。また、自分のプログラムでもいまのところ、 EXECUTE "C:\Documents and Settings\PCUSER\My Documents\バックアップ制御\sprun30\SPRUN.EXE" WITH ("C:\Documents and Settings\PCUSER\My Documents\バックアップ制御\sprun30\8時27分復帰休止.spr")
でWITH以降の起動オプションは正常に起動できております。
また、何かありましたら、教えていただけますでしょうか。
 ありがとうございます。

      └追伸 小野 2007/06/25 21:54:44  ツリーへ

Re: 修正版を ノートメニュー
小野 <zmshjkpoty> 2007/06/25 21:54:44
追伸
 何度か新バージョンで試しましたが、やはりEXEファイルは起動しますが、起動オプションが読めない状態が時々発生しました。また、運良く起動オプションが起動した後、BASIC起動中で、且つ、EXEファイル実行中にタスクマネージャで状態を確認したところ、BASICソフトが「応答なし」になっています。

       └EXECUTE文の実行中,「応答なし」になるのは... 白石 和夫 2007/06/26 07:33:30  (修正1回) ツリーへ

Re: 追伸 ノートメニュー
白石 和夫 <fbdfvqwhki> 2007/06/26 07:33:30 ** この記事は1回修正されてます
EXECUTE文の実行中,「応答なし」になるのは正常です。無理やりアクティブにしようとすればハングします。
Windowsのコマンドラインには長さの制限があります。コマンド引数が長いとその制限にかかる可能性があります。

        └当初コマンドラインは 小野 2007/06/26 22:44:48  ツリーへ

Re: EXECUTE文の実行中,「応答なし」になるのは... ノートメニュー
小野 <zmshjkpoty> 2007/06/26 22:44:48
当初コマンドラインは
WITH ("C:\Documents and Settings\PCUSER\My Documents\バックアップ制御\sprun30\8時27分復帰休止.spr")
でしたが、今回
WITH ("C:\バックアップ制御\sprun30\8時27分復帰休止.spr")
にして試しました。
 が、コマンドラインのファイルでEXEファイルが起動できる時とできない場合が発生しております。
SPRUN.EXEは、SPrunというフリーソフトで、複数のWindowsプログラムを、順次及び同時に起動するプログラムですが、単独では、正常に起動します。BASICでEXCUTEで使用すると、この現象が発生してしまいます。
 よろしくお願いします。
PCはWINDOWS XP 2 HOME EDITIONでメモリは768Mあります。
 

         └できる場合とできない場合というのは,コマ... 白石 和夫 2007/06/27 09:06:40  (修正1回) ツリーへ

Re: 当初コマンドラインは ノートメニュー
白石 和夫 <kodwmnknzv> 2007/06/27 09:06:40 ** この記事は1回修正されてます
できる場合とできない場合というのは,コマンド引数が完全に同じでもそうなるのでしょうか,それとも,ある特定の文字列を引数にしたときに限ってそうなるのでしょうか?
特定の文字列に限る場合,ある特定の文字を含むかどうかで結果が定まるというような特徴はないでしょうか?

          ├コマンド引数が完全に同じでも、できない場... 小野 2007/06/27 17:48:32  ツリーへ

Re: できる場合とできない場合というのは,コマ... ノートメニュー
小野 <zmshjkpoty> 2007/06/27 17:48:32
 コマンド引数が完全に同じでも、できない場合もありますし、引数を変えても、コマンドオプションが起動する時もあるし、しないときもあり、結果定まらない状態です。

          └追伸 小野 2007/06/27 19:49:21  (修正1回) ツリーへ

Re: できる場合とできない場合というのは,コマ... ノートメニュー
小野 <zmshjkpoty> 2007/06/27 19:49:21 ** この記事は1回修正されてます
追伸
 一つ判明したことがわかりました。
 今まで、WINDOWSのタスクスケジュールにこのプログラムを登録して、実行していて、この症状が出てしました。
 BASICのテキストエデッタで編集中に実行すると正常に実行でることがわかりました。
また、10 EXECUTE "c:\windows\notepad.exe" WITH ("C:\\BASICw32\README.TXT")をWINDOWSのタスクスケジュールに設定してもREADM.TXTが表示されません。テキストエデッタで実行するとREADMが表示されます。

 よろしくお願いします。

           └BASIC.EXE/ORプログラム名.BAS 白石 和夫 2007/06/27 21:38:21  ツリーへ

Re: 追伸 ノートメニュー
白石 和夫 <fbdfvqwhki> 2007/06/27 21:38:21
BASIC.EXE /OR プログラム名.BAS
みたいにしてみたらどうでしょうか?

            └10EXECUTE"c:\windows\notepad.exe"WITH("C... 小野 2007/06/28 14:47:12  ツリーへ

Re: BASIC.EXE/ORプログラム名.BAS ノートメニュー
小野 <zmshjkpoty> 2007/06/28 14:47:12
10 EXECUTE "c:\windows\notepad.exe" WITH ("C:\BASICw32\README.TXT")
20 EXECUTE "c:\windows\notepad.exe" WITH ("C:\BASICw32\REVISION.TXT")
30 END

 上記ステップで、プログラム名は、TEST.BASで、
WINDOWSのタスクスケジュールで実行するファイルに
C:\BASICw32\Basic.exe /OR "TEST.BAS"
に設定すると正常にメモ帳は表示できましたので、自分のもので、試して見ます。
 

             └自分の作成したものでは、時々HANGしてしま... 小野 2007/07/01 16:28:13  ツリーへ

Re: 10EXECUTE"c:\windows\notepad.exe"WITH("C... ノートメニュー
小野 <zmshjkpoty> 2007/07/01 16:28:13
自分の作成したものでは、時々HANG してしまいます。
気になることがあるのですが、
10 EXECUTE "c:\windows\notepad.exe" WITH ("C:\BASICw32\README.TXT")
20 EXECUTE "c:\windows\notepad.exe" WITH ("C:\BASICw32\REVISION.TXT")
30 END
のステップでステップ実行するとメモ帳は開きますが、("C:\BASICw32\README.TXT")が読み込み出来ません。また、次のステップも同様です。
 何か問題あるのでしょうか。
 

              └なぜ,そうなるのか,想像がつきません。い... 白石 和夫 2007/07/04 14:57:59  ツリーへ

Re: 自分の作成したものでは、時々HANGしてしま... ノートメニュー
白石 和夫 <kodwmnknzv> 2007/07/04 14:57:59
なぜ,そうなるのか,想像がつきません。いろいろ,条件を変えて試行してみて,法則を見出せれば,解決策が見えてくるかもしれません。

               └原点に戻って、VERSION5.9.10をC:\BA... 小野 2007/07/04 22:22:11  ツリーへ

Re: なぜ,そうなるのか,想像がつきません。い... ノートメニュー
小野 <zmshjkpoty> 2007/07/04 22:22:11
原点に戻って、VERSION5.9.10をC:\BASIC32Wから削除して、新たにC:\PROGRAM FILEにインストールして
10 EXECUTE "c:\windows\notepad.exe" WITH ("C:\Program Files\Decimal BASIC\BASICw32\README.TXT")
20 EXECUTE "c:\windows\notepad.exe" WITH ("C:\Program Files\Decimal BASIC\BASICw32\REVISION.TXT")
のプログラムをTEST.BASの名前でタスクスケジュラに設定して、1分間隔で10分試しましたが、README、REVISIONいずれかが1.2回起動できません。
 先生の環境では、そのようなことはございませんでしょうか。

                └現状で唯一想定できるのが,CPUの利用率が1... 白石 和夫 2007/07/05 15:01:26  ツリーへ

Re: 原点に戻って、VERSION5.9.10をC:\BA... ノートメニュー
白石 和夫 <kodwmnknzv> 2007/07/05 15:01:26
現状で唯一想定できるのが,CPUの利用率が100%近かったり,ディスクが激しく動いていたりして,NOTEPADが引数として渡されたファイルを読みにいってOSから反応が返ってくるのに時間がかかりすぎるために,「ファイルが見つからない」というエラーになってしまうのかもしれないということなのですが,ステップ実行で,そのような状況になるとは思えないので,想定不能です。

                 ├要点は,NOTEPADが開くべきファイルの名前を... 白石 和夫 2007/07/05 15:16:27  ツリーへ

Re: 現状で唯一想定できるのが,CPUの利用率が1... ノートメニュー
白石 和夫 <kodwmnknzv> 2007/07/05 15:16:27
要点は,NOTEPADが開くべきファイルの名前を正しく受け取っているかどうかです。つまり,NOTEPADが出すエラーメッセージにファイル名が正しく表示されているかです。そうでないとしたら,どういう名前のファイルを開こうとしてエラーになるのかが重要です。

                 ├CPUの利用率は100%に近いことはありませんで... 小野 2007/07/12 20:30:26  ツリーへ

Re: 現状で唯一想定できるのが,CPUの利用率が1... ノートメニュー
小野 <zmshjkpoty> 2007/07/12 20:30:26
CPUの利用率は100%に近いことはありませんでした。
また、NOTEPADが起動して,「ファイルが見つからない」というエラーになってしまうのではなく、NOTEPADのタイトル画面が出て(タイトルの下のファイル、編集、表示等のメニューバーは出ず)砂時計のマークがでて、その後、NOTEPADのタイトルの横に「応答なし」とでてしまいます。

                 │└BASICが起動するとすぐにEXECUTE文を実行す... 白石 和夫 2007/07/17 11:45:28  ツリーへ

Re: CPUの利用率は100%に近いことはありませんで... ノートメニュー
白石 和夫 <kodwmnknzv> 2007/07/17 11:45:28
BASICが起動するとすぐにEXECUTE文を実行するようになっているのでしたら,EXECUTE文の直前に
WAIT DELAY 5
のような遅延を挿入して,ディスクアクセスが落ち着くのを待ってみたらどうでしょうか?
なお,wait delay文の遅延時間の単位は秒です。

                 │ └WAITDELAYで秒数を3〜15秒で試しましたが... 小野 2007/07/17 17:23:02  ツリーへ

Re: BASICが起動するとすぐにEXECUTE文を実行す... ノートメニュー
小野 <zmshjkpoty> 2007/07/17 17:23:02
WAIT DELAY で秒数を3〜15秒で試しましたが、EXECUTEで起動オプションは読み込めませんでした。
 なぜEXECUTE NOWAITだとWAIT DELAY **を挿入しなくても読み込めて、NOWAITなしでは読み込めないのでしょうか。

                 │  └NOWAITを指定しない場合は,WaitForSingleO... 白石 和夫 2007/07/18 09:28:23  ツリーへ

Re: WAITDELAYで秒数を3〜15秒で試しましたが... ノートメニュー
白石 和夫 <kodwmnknzv> 2007/07/18 09:28:23
NOWAITを指定しない場合は,WaitForSingleObjectというWin32 APIを追加で呼び出します。このAPIの実行中に反応が要求されると固まってしまいます。その影響が呼び出し先にまで及ぶのかどうか定かではありませんが,そうだと仮定して,そして,また,タスクスケジューラが起動したプログラムに対して何らかの反応を求めるために固まるのだとしたら,説明がつきます。
 もし,この仮説が正しいとしたら,タスクスケジューラとBASICの間に,BASICをEXECUTE NOWAITで起動するBASICプログラムを挟めば,解決する可能性があります。
具体的には,
EXECUTE NOWAIT "BASIC.EXE" WITH("BASICプログラムファイル名")
のような内容のBASICプログラムを作って,そのプログラムファイル名をBASIC.EXEの引数にしてタスクスケジューラで起動することになります。

                 │   ├タスクスケジューラに例Aのプログラムの内容... 小野 2007/07/18 17:38:34  ツリーへ

Re: NOWAITを指定しない場合は,WaitForSingleO... ノートメニュー
小野 <zmshjkpoty> 2007/07/18 17:38:34
タスクスケジューラに例Aのプログラムの内容でプログラム名を、日付別作業NOWAITMAINSTART.BASで設定して、試しましたが例Bのステップ116または475で引数が起動できない場合があります。起動出きることもあります。
また、タスクスケジューラに設定しなくても、例Aを実行で、やはりステップ116または475で引数が起動できない場合があります。起動出きることもあります。

タスクスケジューラには
C:\Program Files\Decimal BASIC\BASICw32\Basic.exeで
引数には日付別作業NOWAITMAINSTART.BASといれ

 例A(日付別作業NOWAITMAINSTART)
25 EXECUTE NOWAIT "C:\Program Files\Decimal BASIC\BASICw32\Basic.exe" WITH ("\Program Files\Decimal BASIC\BASICw32\日付別作業NOWAITMAIN.BAS")

例B(日付別作業NOWAITMAIN.BAS)
116 EXECUTE "C:\バックアップ制御\sprun30\SPRUN.EXE" WITH ("C:\sprun30\HD革命でバックアップNOWAIT.spr")
:
:
475 EXECUTE "C:\sprun30\SPRUN.EXE" WITH ("C:\sprun30\1世代前コピーとバックアップNOWAIT.spr")

                 │   ├参考になればですが、 小野 2007/07/18 19:23:32  ツリーへ

Re: NOWAITを指定しない場合は,WaitForSingleO... ノートメニュー
小野 <zmshjkpoty> 2007/07/18 19:23:32
参考になればですが、
 EXECUTE の後の実行ファイルが起動して、起動オプションが開けない時にCtrlとAltとDelキーを同時に押すと実行ファイルで起動オプションを読み込める状態になり、その後クリックすると起動オプションが読み込め、実行ファイルが正常に動き始めます。
 原因のきっかけになってほしいと願っています。

                 │   └EXECUTE(NOWAITなし)でWITH句を付けない(起... 小野 2007/07/20 20:31:17  ツリーへ

Re: NOWAITを指定しない場合は,WaitForSingleO... ノートメニュー
小野 <zmshjkpoty> 2007/07/20 20:31:17
EXECUTE(NOWAITなし)でWITH句を付けない(起動オプションなし)でEXECUTEを実行するとフリーズしないようです。
 やはり影響が呼び出し先にまで及んでいるのかもしれません。
 参考までに追伸しました。

                 └何度もEXECUTEのみとEXECUTENOWAITでタスク... 小野 2007/07/14 09:03:55  (修正1回) ツリーへ

Re: 現状で唯一想定できるのが,CPUの利用率が1... ノートメニュー
小野 <zmshjkpoty> 2007/07/14 09:03:55 ** この記事は1回修正されてます
何度もEXECUTEのみとEXECUTE NOWAIT でタスクスケジュールでためしました。
 NOWAITでは一度も起動オプションの読み込みに失敗はありませんでしたが、NOWAITなしでは、何度か起動オプションは読み込めませんでした。先生の環境では、そのようなことはございますか。
 ないとしたら、自分PCに問題があるとか考えます。


このノートはこれ以上発言できません。
新しくノートを作成 して、続きを書いてください。

インデックスへ EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。