2

ユーザーがシステムをシャットダウンまたは再起動できないようにしたい。私のアプリケーションは、Win32ネイティブサービス(C ++で記述)として、LocalSystemアカウントで実行されます。

その解決策について聞いたWM_QUERYENDSESSION:隠しウィンドウを作成し、WM_QUERYENDSESSIONシャットダウンを防ぐためにキャプチャする。

しかし、このソリューションは実際にはクリーンではなく、デスクトップごとに1つのウィンドウを作成する必要があります。したがって、デスクトップを列挙し、デスクトップがいつ作成/破棄されたかについても注意する必要があります。これらすべてが状況を厄介にします!

シャットダウン/再起動イベントを検出し、システムのシャットダウン/再起動を防ぐ方法はありますか?

(イベントがシャットダウンまたは再起動することは重要ではありません。両方をキャンセルする必要があります!)

4

1 に答える 1

1

できません。

プログラムがシャットダウン/再起動を防ぐことを許可することは、セキュリティの脆弱性のようなものになるので、あなたは思いませんか?

ユーザーがシステムにシャットダウンまたは再起動するように指示した場合、それが起こります。

ところで、WM_QUERYENDSESSIONは、現在のユーザーがWindowsからログアウトしているときに渡されます。これは通知であり、それ以上のものではありません。他の方法で使用している場合は、誤って使用しています。

于 2009-08-25T15:40:54.103 に答える