WindowsフォームのGUIを使用するだけでなく、コマンドラインから呼び出すことができるようにサードパーティのアプリケーションを拡張しようとしています(混合モードが望ましい)。これは、基本的にファイルをロードし、ボタンをクリックしてUDPネットワークパケットの送信を開始する非常に単純なプログラムです。
別のアプリケーションからアプリケーションを呼び出す必要があり、引数を渡したいので、ExitCodeを呼び出し元のアプリに返すことができる必要があります。私が読んだことから、そうするためには、コンパイラ指令{APPTYPECONSOLE}を追加する必要があります。
私はこれを行い、ネットワークパケットの送信速度が低下してクロールすることを除いて、アプリケーションは希望どおりに機能しました。 フォーム上でマウスを動かすたびに気づきました。ネットワーク転送速度が大幅に増加したこと。ある種のWindowsメッセージキューの問題があり、マウスを動かすと割り込みが発生し、メッセージキューが処理されるのではないかと思います。
私はグーグルで検索し、1ms間隔のタイマーでApplication.ProcessMessagesとPeekMessagesを呼び出してみましたが、まったく役に立ちませんでした。他のアプリケーションのこのユーザーマニュアルで、Indy10はAPPTYPECONSOLEタイプとGUIタイプの両方でサポートされていると書かれていることがわかりました。率直に言って、すべてのネットワークライブラリが両方のモードで動作すると想定していたので、これは私を混乱させます...しかし、私が言ったように、私はDelphiに精通していません。
この問題は私のアプリケーションでは1行に限定されており、それは{APPTYPECONSOLE}が含まれているかどうかに関係していると確信しています。
誰かアイデアはありますか?
バージョン情報:
Delphi 7 Personal(ビルド4.453)
Indy 9.0.4