我们写一个服务,有时候要让服务启动某个应用程序,就要修改服务的属性,勾选允许服务与桌面交互,
可以用修改注册表实现,我们必须在安装后操作,所以请重写Installer的OnAfterInstall。
protected override void OnAfterInstall(System.Collections.IDictionary savedState) {
RegistryKey rk = Registry.LocalMachine;
string key = @"SYSTEM\CurrentControlSet\Services\" + this.sInstaller.ServiceName;
RegistryKey sub = rk.OpenSubKey(key, true);
int value = (int)sub.GetValue("Type");
if (value < 256) {
sub.SetValue("Type", value | 256);
}
base.OnAfterInstall(savedState);
}
但以上方法只能在重启后起到作用。。。若要想立即生效可以用以下代码代之,将此方法放入onAfterInstall即可
设置服务与桌面交互
private void SetServiceDesktopInsteract(string serviceName) {
ManagementObject wmiService = new ManagementObject(string.Format("Win32_Service.Name='{0}'",serviceName));
ManagementBaseObject changeMethod = wmiService.GetMethodParameters("Change");
changeMethod["DesktopInteract"] = true;
ManagementBaseObject OutParam = wmiService.InvokeMethod("Change", changeMethod, null);
}
若想立即启动服务调System.ServiceProcess.ServiceController类来实现
原文:http://www.cnblogs.com/chenzhigao/archive/2010/02/06/1665173.html
分享到:
相关推荐
1. **创建代理进程**:服务可以启动一个无界面的代理进程,该代理进程具有与桌面交互的权限。服务通过进程间通信(如命名管道、内存映射文件或WCF服务)与代理进程通信,指示代理进程启动具有用户界面的应用程序。 ...
C#允许服务与桌面交互,但需注意安全性和权限问题。 5. **事件日志**:服务在运行过程中可能会遇到异常或需要记录关键操作,这时可以使用System.Diagnostics命名空间的EventLog类来记录事件。 回到我们的DNS集成...
在C#中实现RDP,通常会用到`System.Runtime.InteropServices`命名空间中的`DllImport`特性来调用Windows API函数,如`WTSOpenServer`、`WTSShutdownSystem`等,实现与远程桌面服务的交互。 在本项目中,可能涉及的...
在IT领域,C# WinForm与HTML的交互是构建混合应用程序的一个重要方面,尤其是在桌面应用与Web技术结合的场景中。VS2015(Visual Studio 2015)提供了一个强大的开发环境,支持这样的跨平台交互。下面将详细阐述这个...
Flash与C#交互的核心在于ActionScript,这是Flash中的编程语言,它允许开发者为Flash对象添加交互性和功能。在C#和Flash之间建立通信,通常采用以下几种方法: 1. **Socket通信**:C#可以通过System.Net.Sockets...
10. **前后端分离**:随着前端框架(如React、Vue、Angular)的发展,现代Web应用更多地采用API驱动的方式,前端通过调用RESTful API与后台交互,C#可以专注于构建后端服务。 了解并熟练掌握以上知识点,对于实现C#...
在IT领域,HTML(HyperText Markup Language)与C#的交互是常见的开发需求,尤其是在构建桌面应用程序或Web应用程序时。本实例将详细讲解如何利用C#中的WebBrowser控件与HTML进行交互,以便理解这一技术的核心概念。...
### C# WebBrowser页面与Winform交互技巧 在开发基于Windows平台的应用程序时,经常需要使用WebBrowser控件来在Winform应用程序中嵌入网页内容,并且可能需要与这些网页内容进行交云。本文将详细介绍如何在C#中实现...
1. **Flash External Interface (AS3):** 这是Flash Player提供的一个API,允许ActionScript 3代码(Flash的编程语言)调用JavaScript函数,进而与网页中的C# Web服务或Ajax接口通信。C#服务端可以处理请求并返回...
标题中的"C#与Flex交互"指的是在开发过程中,使用C#作为后端处理逻辑,而Flex作为前端用户界面,两者之间进行数据和功能的通信。Flex是一种基于Adobe AIR和Flash Player运行时的开源框架,主要用于构建富互联网应用...
3. **C#与Flash交互的必要性**:在某些场景下,例如游戏开发或网页嵌入的复杂交互,需要将Flash的内容与后端逻辑(如C#)结合,实现数据的双向通信,例如用户输入、游戏状态同步等。 4. **实现原理**:C#与Flash...
创建一个新的Winform窗口,这将作为用户与远程桌面交互的界面。你可能需要设计一个简单的UI,包括一个全屏显示的Panel控件,用于承载远程桌面的视图,以及一些按钮,如“连接”、“断开”等。 3. **实现远程桌面...
8. **进程通信**:在某些复杂场景下,可能需要与独立的IE进程进行交互,这就涉及进程间通信(IPC),如使用消息队列、管道或WCF服务。 9. **自动化测试**:C#与IE的交互也常用于自动化测试,如Selenium WebDriver。...
在C# WinForm开发中,有时我们可能需要创建一个特殊的应用程序窗口,使其能够“钉”在桌面之上,同时允许用户的鼠标穿透这个窗体,以便能够点击到隐藏在其下的桌面图标或快捷方式。这种功能在某些系统监控或者辅助...
在IT行业中,C#与Flash的交互是一种常见的技术应用场景,特别是在网页开发和桌面应用程序中,开发者经常需要将这两种技术结合,以实现丰富的图形用户界面和动态内容。本篇将详细探讨如何通过C#来接收并处理由Flash...
在IT领域,尤其是在Web开发中,Flash与C#的交互是一项重要的技术,它允许富互联网应用程序(RIA)和服务器端程序之间进行数据交换,提升用户体验。本资源"Flash与C#交互全集(bs与cs)"提供了全面的指导,涵盖了B/S...
例如,创建一个名为AlertService的服务,尽管在服务属性中勾选了"允许服务与桌面交互",但在Win7环境下,服务发出的对话框并不会出现在当前用户的桌面,而是出现在一个独立的Session中,用户无法直接访问。...
VSTO允许开发者使用.NET Framework来编写代码,与Excel的用户界面元素交互,甚至可以创建自定义菜单、工具栏和对话框。 公式计算是Excel的一大特性,C#可以直接调用Excel的计算引擎进行计算。例如,你可以获取某个...