Windows 2003 で動作するターミナル サービス ベースのシステムで作業しています。これは、ユーザーがプログラムを開始するデスクトップ代替アプリケーションで構成されています。また、ログオフ ボタンもあります。ユーザーがログオフすると、2 つのことが発生する必要があります。まず、彼は Windows からログアウトしています。次に、ユーザー データベースの状態をクリーンアップするストアド プロシージャが呼び出されます。これはほとんど正常に機能しますが、ある状況では、ユーザーがログオフ イベントをキャンセルした場合です。典型的なシナリオ: 1- ユーザーがログインし、MS Word を起動し、ドキュメントを編集しますが、保存しません。2 - 次に、ユーザーがログオフ ボタンを押します。3- MS Word はこれに反応して、ユーザーに変更を保存するように求めます。4 - ユーザーがキャンセルを押します。
この時点で、デスクトップ アプリケーションは、データベースの状態をクリーンアップするストアド プロシージャを既に呼び出している可能性があります。デスクトップ アプリケーションでこの動作を確認するにはどうすればよいですか? セッションの終了操作がキャンセルされたことを示すメッセージはありますか?
私の質問はまったく意味がありますか?
ああ、アプリケーションはすべて Delphi 7 で書かれていますが、私は C、C++、C# でも作業しているので、これらの言語での回答も歓迎します。