我需要帮助使用C#终止Windows服务,现在使用以下选项终止服务:从命令:scqueryexServiceName发现服务的PID后taskkill/pid1234(exemple)/f 最佳答案 为了便于阅读,但如果您明白我的意思,我会使用单独的方法IsServiceInstalled、IsServiceRunning、StopService等将服务交互分离到它自己的类中。此外,通过停止服务,它应该已经终止了进程,但我也包括了你将如何做类似的事情。如果服务不会停止,而您是通过终止进程来停止它,如果您有权访问它,我会查看服务代码是
我今天正在编写我的第一个Windows服务,并按照此处非常有用的演练进行操作:http://msdn.microsoft.com/en-us/library/zt39148a(v=vs.110).aspx一切正常。当我的服务开始工作时,我开始编辑它以将我的真实代码放入其中,这也很顺利。但是我发现,如果我更改事件日志的名称或以下代码中的源,则服务将不会启动。将其改回演练中使用的名称允许服务重新启动。eventLog1=newSystem.Diagnostics.EventLog();if(!System.Diagnostics.EventLog.SourceExists("Twitter
守护进程和服务有什么区别?(在Windows或Linux中)。 最佳答案 daemon是后台的非交互程序。它与任何交互式用户的键盘和显示器分离。表示后台程序的守护进程一词来自Unix文化;它不是通用的。服务是一种程序,它通过某种进程间通信机制(通常通过网络)响应来自其他程序的请求。服务是服务器提供的。例如,NFS端口映射服务作为单独的端口映射服务提供,它作为portmapd守护进程实现。服务不一定是守护进程,但通常是。具有GUI的用户应用程序可以在其中内置服务:例如,文件共享应用程序。更多详情:https://askubuntu.c
据我所知,当我们启动windows时,它会启动session0,它不连接到任何GUI等,并运行所有windows服务。所以我的任务是,在Windows启动后,模拟Windows输入以选择用户并登录到session。我知道要从服务发送输入,我应该运行桌面应用程序并通过它发送输入、显示GUI等等,但是在任何用户session开始之前我该怎么做呢?(例如我看到TeamViewer可以做到) 最佳答案 WTSGetActiveConsoleSessionId()将告诉您哪个session附加到物理控制台。然后您可以使用DuplicateTo
我最近在编写Windows服务程序。我在编程时遇到的问题是,当我在其上安装程序时,Windows操作系统无法正常关闭。关闭系统需要很长时间。看来我的程序是问题的原因。我试图在互联网上找到解决方案,我发现在我的代码中添加“SERVICE_CONTROL_SHUTDOWN”可以解决问题。我这样做了,但是我的程序没有捕捉到“SERVICE_CONTROL_SHUTDOWN”,我不知道为什么......有谁知道为什么会这样......谁能告诉我如何解决它?谢谢。我在下面放了一段我的代码。//methodthatsetsservicestatus.voidSvcSetStatus(DWORDdw
尝试在Windows10中将SeleniumServer作为服务(使用nssm)安装失败,并在nssmstartselenium-server上显示UnexpectedstatusSERVICE_PAUSED。Selenium是selenium-server-standalone-2.53.0.jar。nssm为2.24。操作系统是Windows10、1511、32位。事件查看器说Serviceselenium-serverranforlessthan1500milliseconds.Restartwillbedelayedby16000milliseconds.目标是使用codece
我想知道是否可以将服务配置为在我从services.msc停止时调用批处理/powershell脚本。虽然在Linux中init.d服务是完全可编程的,甚至systemd服务也可以有额外的过程,但我还没有找到在Windows上实现这一点的方法。提前致谢 最佳答案 您可以将服务配置为在失败时运行程序,但如果您通过services.msc停止服务,那么这可能不会算作失败。我能想到的唯一其他选择是设置一个作为计划任务运行的PowerShell脚本,该脚本可以定期检查服务运行状态,或者(对于更简单的选项)查看事件日志中的事件表明该服务已停止
如何在不同的session中启动线程?我需要从非交互式session(session0)中的服务启动交互式session(session1)中的线程。我之前通过使用SetTokenInFormation和DuplicateTokenEx然后将其传递给CreateProcessAsUser来完成此过程。我希望我可以做同样的事情,除了使用SetThreadToken而不是CreateProcessAsUser。 最佳答案 线程不属于session,进程属于。您需要在另一个session中创建一个进程来托管您想要的线程。
我们如何跟踪Windows服务启动时的程序集加载顺序?例如。当我们启动服务时,它会加载所有引用程序集及其依赖项;我想做的是在实际启动服务之前加载哪些程序集(OS、CLR等)。 最佳答案 为此,您可以在AppDomain.CurrentDomain上使用AssemblyLoad事件。staticvoidMain(string[]args){AppDomain.CurrentDomain.AssemblyLoad+=newAssemblyLoadEventHandler(CurrentDomain_AssemblyLoad);Assem
我正在开发一个每15分钟自动发送一次电子邮件的Windows服务。我正在使用计时器在固定时间间隔(15分钟)后再次使用该服务,但它不起作用。namespaceMailer{publicpartialclassMailer:ServiceBase{System.Timers.TimercreateOrderTimer;publicMailer(){InitializeComponent();}protectedoverridevoidOnStart(string[]args){sendmail();//functiontosendemail.createOrderTimer=newSys