03-11-2009 12:30 AM
03-11-2009 11:41 PM
EXEファイルで開かれても何もしない、ということはありえないと思います。あらゆるアプリケーションは開かれると何らかの処理を行うものです。例えばエクセルを開くと最初の画面を表示する処理がなされ、ユーザーが何もしなければ何も変化しません。が、処理としてはキーボードが押されたか、マウスが動かされたかを常時モニタし、変化してもいない画面をリフレッシュするという処理をし続けています。開かれても何もしないのであれば、初期画面も表示しないということになります。
恐らく、貴方が実現したいのは、ユーザーが何か操作をするまで待機している、ということではありませんか。だとすれば、ブロックダイアグラムの最初にWhileループをおいて、停止ボタンを押すとWhileループが終了して処理が始まるというようにすると良いでしょう。一番最初にWhileループを実行させる方法はWhileループの中にエラー定数でもおいて、処理する関数のエラー入力をこのエラー定数に接続すると、エラー配線された関数はWhileループが終わるまで実行されません。全ての関数のエラー入出力を直列に配線すると関数の実行順位を決めることも出来ます。
もう一つの方法はシーケンスストラクチャで最初のフレームにこのWhileループを入れておくという方法です。この場合次に述べる待機関数以外を入れる必要はありません。
なお、Whileループの中には待機関数を配置して数ミリ秒、待機させるようにしてください。でないとWhileループが間断なく回ってCPU負荷が極端に上がって、キー入力やクリックが中々認識されない状態になります。
03-16-2009 05:57 AM
「新人です。」さんへ
LabVIEW 8.0 から LabVIEW 8.2 へアップグレードした際に生じるバグに同様の問題があるようです。
http://digital.ni.com/public.nsf/allkb/C7256184E0BAFAE0862572B5002DE456
上記 URL を読むと、LabVIEW 8.2.1 で修正されているようです。
また回避方法も書かれていました。
「書かれていた回避方法」
「開かれたら実行する」の設定については、ビルド仕様プロパティの上級カテゴリにある「デバッギングを許可」と「デバッガが起動するのを待機」の両方にチェックを入れて下さい。このチェックにより、回避可能であると共に、VIのブロックダイアグラムと外部コードをデバッグツールサポートとしてアプリケーションに含みます。
上記の方法は VI のブロックダイアグラムが実行ファイルに含まれてしまう方法ですので、可能ならば LabVIEW をアップグレードした方が良いと思います。
以上、ご参考までに。
06-01-2014 02:52 AM
まだ解決されていないみたいですね.
LabVIEW2013
06-02-2014 01:51 AM
はじめまして。
私の環境では(2013SP1)問題なく「開かれたら実行しない」にチェックを入れることで
exe時に実行ボタンを押さないと動作しないアプリケーションを作成できました。
KoutenY様のおっしゃる通り、既に解決されているのではと思いましたが、QDO様いかがでしょうか。
06-02-2014 04:26 AM
あ,できました.失礼しました.