2

起動からシャットダウンまでバックグラウンドで実行されるアプリケーションを作成していますが、状況によっては、ユーザーがシャットダウンを続行するかどうかを選択するためのダイアログを表示する必要があります。このアプリケーションはWindowsでのみ実行されますが、2000以降のどのバージョンでも実行できます。

私は確かにこのトピックについていくつかの調査を行いましたが、Windowsがアプリケーションのシャットダウンを処理する方法に関する情報(http://msdn.microsoft.com/en-us/library/ms700677(VS.85).aspx)は少し散らばっています。誰かがこれを処理するための最良の方法の例、またはトピックに関する追加の知識を持っているなら、私はそれを非常に感謝します(私はC#の経験がほとんどありません)。

ありがとう!!

badPanda

編集:シャットダウンをブロックすることは良い習慣とは見なされないことを私は知っています。これは、このアプリケーションの重要なビジネス要件です。

編集:以下のいくつかのコメンテーターの提案(シャットダウンのブロックが不要になるように再設計するため)で、アプリケーションがデータを送信しているときにシャットダウンしないようにユーザーに通知するためにNotifyIconBalloonポップアップを利用しました。これにより、データがローカルコンピューターに数週間保持されるのを防ぐことはできませんが、ベストプラクティスとビジネス要件の間の適切な妥協点であると感じています。結局のところ、ユーザーが愚かになるなら...まあ、ユーザーは愚かになるでしょう。

4

2 に答える 2

2

私はJABに賛成です。ハードウェア障害の解決にプログラムによるソリューションを使用することはできません。シャットダウンを許可しないようにドメイン権限を設定することを検討してください。効果的にするには、ハードウェア アクセスを制限する必要がある場合もあります。また、UPS を追加したり、ホット サイト バックアップであらゆる種類の $$ を取得したりすることもできます。

これは、トランザクション ベースのシン クライアント アプリケーションの仕事のように思えます。

于 2010-06-15T18:55:15.653 に答える
2

リンクした MSDN の記事で明確に説明されています。アプリが Vista または Win7 で実行されている場合、Windows のシャットダウンを防ぐことはできません。ユーザーにプロンプ​​トを表示しても機能しないため、ダイアログにアクセスできなくなります。これに対処するアプリの設計を検討する必要があります。

于 2010-06-15T18:10:05.690 に答える