質問

win32api.MessageBoxを使用してアラートを実行しており、これは対話型プロンプトおよび通常実行されるコードから実行されているアプリで機能しますが、MessageBoxがトリガーされたときにPythonサービスを構築すると、「ビープ音」が聞こえますが、ボックスは表示されません。サービスからのアラートを表示することは可能ですか?

役に立ちましたか?

解決

いいえ、Windowsサービスは完全に独立した非表示のデスクトップで実行され、ログオンしているユーザーのデスクトップにはアクセスできません。サービス開発者の観点からこれを回避する方法はありません。

以前のバージョンのWindowsでは、サービスを「ユーザーのデスクトップとの対話を許可」とマークすることができましたが、このオプションはXPまたはVistaで削除されました(どちらを忘れましたか)。現在、サービスはユーザーのデスクトップと対話できません。

問題の解決策の1つは、何らかのIPCメソッドを介してサービスと通信するデスクトップアプリケーションを持つことです。サービスがユーザーに何らかの条件を警告する場合、デスクトップアプリケーションに通知し、通常のメッセージボックスを表示します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top