Articles of 窗口服务

空引用exception

沮丧的一直在看这一整天…我正在创build一个Windows服务…这个代码工作正常的控制台应用程序,并不适用于Windows服务。 我得到一个空引用exception: Null reference in OnStart(): Object reference not set to an instance of an object. at VNurseService.Server.RequestServer..ctor(Server s) at VNurseService.VNurseServer.OnStart(String[] args) 代码如下所示: protected override void OnStart(string[] args) { eventLog1.WriteEntry("In OnStart"); Start: try { server = new Server(); Server.RequestServer reference = new Server.RequestServer(server); new Thread(reference.run).Start(); //r1 = new Thread(reference.run); r1.Start(); Server.ResponseServer reference2 = new Server.ResponseServer(server); […]

错误1053服务没有响应启动或控制请求

我已经用C#编写了一个Windows服务,基本上每分钟都会检查我的数据库以获取订单,从这些订单生成一个PDF,并通过电子邮件发送。 这个逻辑在我的testing中是完美的。 当我创build服务,并使用安装项目进行安装时,当我开始服务mmc服务时,我得到: 错误1053服务没有及时响应启动或控制请求 我的OnStart方法如下所示: protected override void OnStart(string[] args) { //writeToWindowsEventLog("Service started", EventLogEntryType.Information); timer.Enabled = true; } 基本上,只是启用计时器…所以没有过程密集的电话那里。 我哪里错了? 我已经尝试设置启动帐户本地系统,networking服务等…没有任何工作! 编辑: 这里是我的代码:( processPurchaseOrders是数据库查询和pdf的生成等方法…) public partial class PurchaseOrderDispatcher : ServiceBase { //this is the main timer of the service private System.Timers.Timer timer; public PurchaseOrderDispatcher() { InitializeComponent(); } // The main entry point for the process […]

windows – 从c ++中的服务访问剪贴板

我有一个用C ++编写的Windows服务,它需要访问剪贴板并从其中读取/粘贴数据。 我只考虑文本数据。 从MSDN的文档,我可以使用OpenClipboard , SetClipboardData和SetClipboardData来实现我想要的。 我将不得不传递NULL到OpenClipboard因为我没有任何UI,因此没有窗口句柄。 但是,这意味着 – 如果应用程序使用hwnd设置为NULL调用OpenClipboard,则EmptyClipboard将剪贴板所有者设置为NULL; 这会导致SetClipboardData失败。 这意味着我不能在剪贴板上设置数据。 什么是解决这个问题的正确方法? 没有使用任何窗口可能吗?

如何创build芹菜Windows服务?

我正在尝试创build一个Windows服务来启动芹菜。 我遇到了一个使用Task Scheduler的文章。 然而,它似乎启动了大量的芹菜实例,并一直记忆直到机器死亡。 有没有办法将其作为Windows服务启动?

即使在用户注销后,也可以在Windows中运行Java进程

我有一个batch file在Windows 2003服务器中启动Java进程。 根据安全策略,如果用户在一段时间内处于非活动状态,那么该机器的用户将被强制注销。 问题是,当用户注销时,该进程也会死亡。 我安排了一个新的任务(控制面板 – >计划任务),并select了“当我的电脑启动”选项,并在那里提供了用户帐户的详细信息。 但它似乎没有任何效果,用户仍然注销并且进程死亡。 是否需要重新启动才能使此更改生效? 重启后,我会达到我期望的(保持进程活着)? 或者,将运行此过程作为Windows服务解决问题? 如果是这样,你可以让我知道我怎样才能使Java程序或batch file作为Windows服务运行? 我不想使用任何其他第三方工具或库。 谢谢

Windows服务可以自行停止吗?

我有一个Windows服务,其启动types是自动的,但我想在服务启动时做一些检查,如果这些检查失败,服务会自动停止。 我怎样才能做到这一点? 我的服务是用C#编写的。

从Windows服务调用时,SetThreadExecutionState不起作用

我想阻止系统从Windows服务hibernate/hibernate。 我正在调用SetThreadExecutionState函数来做到这一点。 但似乎没有效果。 我只想知道SetThreadExecutionState函数是否适用于windows服务。 如果不是什么将是替代方法。 以下是我正在使用的C#代码。 我打电话给Onstart服务的方法。 [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] static extern uint SetThreadExecutionState(EXECUTION_STATE esFlags); private void KeepAlive() { SetThreadExecutionState(EXECUTION_STATE.ES_DISPLAY_REQUIRED | EXECUTION_STATE.ES_SYSTEM_REQUIRED | EXECUTION_STATE.ES_CONTINUOUS) }

将PHP脚本设置为Windows服务

我需要build立一个PHP脚本作为一个Windows服务。 我需要它运行,无论用户login,并在系统启动 – 这听起来像一个Windows服务是最好的,但很高兴听到其他build议。 (这个脚本持续运行,这不是一个“每5分钟运行一次”的事情,我可以使用计划任务pipe理器。) http://support.microsoft.com/kb/251192涵盖使用sc.exe程序来安装您的服务。 但从我读过的,我需要有一个包装PHP脚本来接受来自Windows服务pipe理器的特殊命令。 有人能帮忙吗?

Windows服务与Windows窗体在相同的过程中

我有ac#应用程序作为一个Windows服务控制套接字连接和其他东西运行。 此外,还有另一个Windows窗体应用程序来控制和configuration此服务(系统启动,停止,与configuration参数显示表单)。 我使用.net远程做IPC,这很好,但现在我想显示一些真正的stream量和其他报告和远程处理将不符合我的性能要求。 所以我想把两个应用程序结合在一起。 这是问题: 当我从Windows服务启动窗体时,什么都没有发生。 谷歌search我发现,我必须右键点击该服务,去login和检查“允许服务与桌面交互”选项。 由于我不想问我的用户这样做,我有一些代码再次谷歌search在安装时在用户的registry中设置此选项。 问题是,即使设置这个选项,它不起作用。 我必须打开服务的login选项(它被选中),取消选中并再次检查。 那么,如何解决呢? 如何在同一个进程中拥有一个带有系统托pipe的Windows服务的最佳方式,可供任何用户login? 更新:感谢迄今为止的意见,伙计们。 我同意使用IPC更好,我知道混合windows服务和用户界面是不好的。 即使如此,我想知道如何做到这一点。

多个Windows服务在一个EXE

我正在试图build立几个Windows服务来做不同的事情。 例如,我需要Windows服务,将: 通过电子邮件发送每日报告 定期清理一些存档信息,每30分钟一次 等等 我需要Windows服务做的任务是截然不同的,所以我不太喜欢把它们都放在一个服务中的想法。 我到目前为止是Visual Studio 2008中的一个项目。我已经创build了一个Windows服务,我已经在OnStart事件上设置了一个计时器(它只是为了testing目的每5秒写一个文本文件)。 然后我添加一个安装程序到项目中,当我运行InstallUtil.exe时,一切工作正常。 当我将第二个Windows服务添加到同一个项目时,问题就出现了。 我再次设置了OnStart代码,使用相同的日志信息(略有不同,所以我可以告诉哪个服务正在写入日志)。 随着第二个Windows服务,我改变了Program.cs中的主要事件: static void Main(string[] args) { ServiceBase[] ServicesToRun = new ServiceBase[] { new Service1() }; ServiceBase.Run(ServicesToRun); } 至: static void Main(string[] args) { ServiceBase[] ServicesToRun = new ServiceBase[] { new Service1(), new Service2() }; ServiceBase.Run(ServicesToRun); } 在这一点上,没有编译时错误,但Service2服务从不做任何事情…日志logging任务不会触发。 我将其缩小到第二个服务没有与之关联的“安装者”的事实。 然后,我尝试按照第一个服务的方式添加安装程序(即,右键单击服务devise器,然后单击“添加安装程序”)。 现在,当我去到ProjectInstaller.cs文件,那里有另一个serviceInstaller(serviceInstaller2)。 现在,当我build立项目,并尝试安装服务,我去“服务”控制面板窗口,我尝试启动Service1,我得到以下错误信息: Windows无法在本地计算机上启动Service1服务。 错误1083:此服务被configuration为运行的可执行程序不执行该服务。 […]