`
kimmking
  • 浏览: 546680 次
  • 性别: Icon_minigender_1
  • 来自: 中华大丈夫学院
社区版块
存档分类
最新评论

windows services与桌面程序交互问题

阅读更多

windows services程序与桌面程序交互问题

 

kimmking

 

2009年7月8日20:52:28



今天有人问我的一个问题,分析了下。

 

有没有好的解决办法。就是因为NT Service不显示UI,我才让它调用exe,可调用的exe也不显示UI 。serviceInstaller 或者 serviceProcessInstaller 中设置吗? 没有找到相关属性。
windows 服务就是注册表里的 SYSTEM\CurrentControlSet\Services\下的一个项。添加 删除 修改 服务其实都仅仅是改注册表。
这个是windows服务的本质
题外话:懂了这个,其实创建一个服务不需要ServiceProcessInstaller、ServiceInstaller之类的东西。


设置允许服务与桌面交互 ,这个在服务的登录页有选项。在注册表里是type值 | 256,就是第8位置1。
.net提供了这个属性。

http://msdn.microsoft.com/zh-cn/library/tfdtdw0e(VS.80).aspx
ServiceType.InteractiveProcess
不支持创建交互式服务。作为一种变通方法,可以创建非交互式服务,并创建与该服务进行通信(通过使用套接字或远程处理)的单独控制 GUI 应用程序。

还是不太爽,
要直接交互,改注册表。 

            RegistryKey rk = Registry.LocalMachine; 
            string key = @"SYSTEM\CurrentControlSet\Services\" + serviceName; 
            RegistryKey sub = rk.OpenSubKey(key, true); 
            int value = (int)sub.GetValue("Type"); 
            sub.SetValue("Type", value | 256); 

 

分享到:
评论

相关推荐

    vista和win7在windows服务中交互桌面权限问题解决方法:穿透Session 0 隔离

    对于简单的交互需求,可以利用Windows Terminal Services(远程桌面服务)的API,如WTSSendMessage函数,向用户的Session发送消息窗口。但这种方法仅限于文本消息的传递,无法处理复杂的UI交互。 对于更复杂的交互...

    Windows服务与运行> XP的桌面进行交互的另一种方法

    为了解决这个问题,我们可以创建一个代理进程(如WinForms应用程序),该进程运行在用户的会话中并作为服务与桌面之间的桥梁。服务通过与这个代理进程通信,间接地与桌面进行交互。 这里,`Alternative-way-for-...

    多窗口远程管理桌面程序

    综上所述,这个多窗口远程管理桌面程序结合了多种远程访问协议,提供了Windows兼容的界面,并且拥有丰富的功能,如加密库支持、数据库连接、Markdown解析以及可定制的用户界面。对于需要高效管理多个远程系统的人来...

    webServices 天气预报

    WebServices是一种基于互联网的、用于应用程序之间交互的技术。在本项目"WebServices 天气预报"中,开发者提供了一个简单的天气预报应用,旨在帮助初学者理解WebServices的工作原理及其在C# WinForm环境中的实现。这...

    Windows Mobile上的服务程序

    在Windows Mobile平台上,服务程序是操作系统的核心组成部分,它们在系统启动时自动运行,提供后台支持,无需用户直接交互。服务程序在Windows Mobile上的工作原理和桌面版Windows有所不同,但核心概念相似,即通过...

    Windows XP SP3远程桌面多用户补丁

    远程桌面服务(Remote Desktop Services,以前称为Terminal Services)是Windows操作系统的一项功能,允许用户通过网络连接到另一台计算机并进行交互式会话。在默认情况下,Windows XP SP3仅允许一个用户通过远程...

    在用户登录windows前,运行你的进程程序

    另外,如果你的应用程序需要交互式与用户界面,那么服务可能不是最佳选择,因为服务默认不能拥有用户界面。此时,你可以考虑使用计划任务(Task Scheduler)。在计划任务中,可以设置一个触发器,使其在系统启动时...

    远程桌面mstsc5.2

    在Windows操作系统中,mstsc(Microsoft Terminal Services Client)是实现这一功能的主要应用程序。"mstsc5.2"指的是这个客户端的一个特定版本。 在mstsc5.2中,用户可以访问远程电脑的桌面环境,如同坐在那台电脑...

    C#1001WebServices客户端设计的研究与实现.pdf

    开发Windows Service可以让开发者编写后台运行的程序,这些程序可以在不直接与用户交互的情况下执行任务。在Web Services客户端设计中,可能会涉及到与服务端交互的后台应用程序。 Web Services是一种网络服务,它...

    windows 服务 弹出界面 消息 提醒功能

    在Windows操作系统中,服务是一种特殊的后台程序,它们在用户登录之前就可以启动,并且通常不需要用户交互就能持续运行。"windows 服务 弹出界面 消息 提醒功能"的实现涉及了几个关键知识点,让我们逐一深入探讨。 ...

    Windows6.1-KB2661332-x64.rar

    远程桌面服务(Remote Desktop Services,RDS)是Windows操作系统的一个组件,允许用户通过网络连接到另一台计算机并进行交互操作。如果收到这样的错误信息,意味着当用户试图执行涉及远程桌面服务的操作时,该服务...

    Windows 8系统中程序无响应且无法关闭.docx

    通过上述步骤和技术背景的介绍,我们可以有效地解决Windows 8系统中程序无响应的问题,并进一步增强对.NET Framework 和 XML Web Services 的理解。这对于提高系统的稳定性和应用程序的兼容性具有重要意义。

    一种通过VS2019,C#语言的Windows版本与低功耗蓝牙通信的源码

    总结,通过Visual Studio 2019和C#,我们可以构建一个与BLE设备交互的Windows应用程序。借助`Windows.Devices.Bluetooth` API,我们可以轻松地完成设备搜索、连接、通信和关闭等操作。这样的应用程序广泛应用于健康...

    windows 程序设计

    因为这些窗口看起来有些像桌面上的纸(当然,这是计算机还未占据办公桌之前的年代),Windows有时被称作:一个显示多个程序的「具象化桌面」。 Windows的早期版本使用一种「非优先权式(non-preemptive)」的多任务...

    易语言-系统服务开发,解决交互桌面权限问题,穿透Session 0 隔离

    "解决交互桌面权限问题"是指在Session 0隔离机制下,普通用户无法与在Session 0运行的服务直接交互,因为这可能会导致权限提升攻击。为了解决这个问题,描述中提到了两种技术:WTSSendMessage和CreateProcessAsUser...

    Windows终端服务和远程桌面应用系列视频课程02

    在本节“Windows终端服务和远程桌面应用系列视频课程02”中,我们将深入探讨操作系统的基本概念,特别是针对Windows环境下的单用户与多用户操作系统。理解这两种操作系统的区别和应用场景对于IT专业人士来说至关重要...

    window服务开机自动启动程序以及窗口交互

    本篇文章将详细探讨如何创建Windows服务,使其在开机时自动启动,并允许与用户界面进行交互。 首先,创建Windows服务通常涉及编写一个特定的可执行文件(.exe),这个文件包含了服务的逻辑。这可以通过使用编程语言...

    WindowsService

    默认情况下,Windows Services与用户界面交互有限,但可以通过设置ServiceBase类的CanInteractWithDesktop属性,允许服务与桌面交互。然而,这并不推荐,因为可能导致性能问题。 4. **服务启动类型** 服务的启动...

Global site tag (gtag.js) - Google Analytics