从Windows服务显示消息框

Jon*_*onn 20 windows-services messagebox

您可以从Windows服务中显示消息框(或任何形式的通知)吗?无法让它发挥作用.我用了:

            global::System.Windows.Forms.MessageBox.Show("A fatal error occurred. " +
                ServiceName + " is now terminating.");
Run Code Online (Sandbox Code Playgroud)

但它不起作用,只是产生了一个错误.

Dea*_*ing 22

不,您无法显示服务中的消息框.如果要报告错误,执行此操作的标准方法是使用事件日志.

对于更多"高级"类型的UI(不仅仅是错误报告),通常这样做的方式是通过您放入用户的Startup文件夹(或注册表中的Run键)并与服务进行通信的常规Windows应用程序通过某种IPC机制(.NET远程处理,WCF,常规套接字,命名管道等).


Mik*_*ike 18

可以从"服务显示一条消息WTSSendMessage(...)"的功能(这是因为可用的Windows VistaWindows Server 2008),这里是一个很好的文章: http://msdn.microsoft.com/en-us/library/ms683502( VS.85)的.aspx