草庐IT

c# - 使用 taskkill 停止 Windows 服务

我需要帮助使用C#终止Windows服务,现在使用以下选项终止服务:从命令:scqueryexServiceName发现服务的PID后taskkill/pid1234(exemple)/f 最佳答案 为了便于阅读,但如果您明白我的意思,我会使用单独的方法IsServiceInstalled、IsServiceRunning、StopService等将服务交互分离到它自己的类中。此外,通过停止服务,它应该已经终止了进程,但我也包括了你将如何做类似的事情。如果服务不会停止,而您是通过终止进程来停止它,如果您有权访问它,我会查看服务代码是

c# - 更改 Windows 服务中的事件日志

我今天正在编写我的第一个Windows服务,并按照此处非常有用的演练进行操作:http://msdn.microsoft.com/en-us/library/zt39148a(v=vs.110).aspx一切正常。当我的服务开始工作时,我开始编辑它以将我的真实代码放入其中,这也很顺利。但是我发现,如果我更改事件日志的名称或以下代码中的源,则服务将不会启动。将其改回演练中使用的名称允许服务重新启动。eventLog1=newSystem.Diagnostics.EventLog();if(!System.Diagnostics.EventLog.SourceExists("Twitter

linux - 守护进程和服务差异

守护进程和服务有什么区别?(在Windows或Linux中)。 最佳答案 daemon是后台的非交互程序。它与任何交互式用户的键盘和显示器分离。表示后台程序的守护进程一词来自Unix文化;它不是通用的。服务是一种程序,它通过某种进程间通信机制(通常通过网络)响应来自其他程序的请求。服务是服务器提供的。例如,NFS端口映射服务作为单独的端口映射服务提供,它作为portmapd守护进程实现。服务不一定是守护进程,但通常是。具有GUI的用户应用程序可以在其中内置服务:例如,文件共享应用程序。更多详情:https://askubuntu.c

windows - 从 Windows 8 中的 Windows 服务( session 0)向登录屏幕发送输入或类似内容

据我所知,当我们启动windows时,它会启动session0,它不连接到任何GUI等,并运行所有windows服务。所以我的任务是,在Windows启动后,模拟Windows输入以选择用户并登录到session。我知道要从服务发送输入,我应该运行桌面应用程序并通过它发送输入、显示GUI等等,但是在任何用户session开始之前我该怎么做呢?(例如我看到TeamViewer可以做到) 最佳答案 WTSGetActiveConsoleSessionId()将告诉您哪个session附加到物理控制台。然后您可以使用DuplicateTo

c++ - 如何在 Windows 服务程序中捕获 SERVICE_CONTROL_SHUTDOWN 代码

我最近在编写Windows服务程序。我在编程时遇到的问题是,当我在其上安装程序时,Windows操作系统无法正常关闭。关闭系统需要很长时间。看来我的程序是问题的原因。我试图在互联网上找到解决方案,我发现在我的代码中添加“SERVICE_CONTROL_SHUTDOWN”可以解决问题。我这样做了,但是我的程序没有捕捉到“SERVICE_CONTROL_SHUTDOWN”,我不知道为什么......有谁知道为什么会这样......谁能告诉我如何解决它?谢谢。我在下面放了一段我的代码。//methodthatsetsservicestatus.voidSvcSetStatus(DWORDdw

windows - Selenium 服务器 : Unexpected status SERVICE_PAUSED

尝试在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

windows - 从 services.msc 停止 Windows 服务时是否可以触发脚本执行?

我想知道是否可以将服务配置为在我从services.msc停止时调用批处理/powershell脚本。虽然在Linux中init.d服务是完全可编程的,甚至systemd服务也可以有额外的过程,但我还没有找到在Windows上实现这一点的方法。提前致谢 最佳答案 您可以将服务配置为在失败时运行程序,但如果您通过services.msc停止服务,那么这可能不会算作失败。我能想到的唯一其他选择是设置一个作为计划任务运行的PowerShell脚本,该脚本可以定期检查服务运行状态,或者(对于更简单的选项)查看事件日志中的事件表明该服务已停止

windows - 更改线程 session ID

如何在不同的session中启动线程?我需要从非交互式session(session0)中的服务启动交互式session(session1)中的线程。我之前通过使用SetTokenInFormation和DuplicateTokenEx然后将其传递给CreateProcessAsUser来完成此过程。我希望我可以做同样的事情,除了使用SetThreadToken而不是CreateProcessAsUser。 最佳答案 线程不属于session,进程属于。您需要在另一个session中创建一个进程来托管您想要的线程。

.net - 服务启动时的 DLL 加载顺序

我们如何跟踪Windows服务启动时的程序集加载顺序?例如。当我们启动服务时,它会加载所有引用程序集及其依赖项;我想做的是在实际启动服务之前加载哪些程序集(OS、CLR等)。 最佳答案 为此,您可以在AppDomain.CurrentDomain上使用AssemblyLoad事件。staticvoidMain(string[]args){AppDomain.CurrentDomain.AssemblyLoad+=newAssemblyLoadEventHandler(CurrentDomain_AssemblyLoad);Assem

c# - 在固定时间间隔后重新启动 Windows 服务

我正在开发一个每15分钟自动发送一次电子邮件的Windows服务。我正在使用计时器在固定时间间隔(15分钟)后再次使用该服务,但它不起作用。namespaceMailer{publicpartialclassMailer:ServiceBase{System.Timers.TimercreateOrderTimer;publicMailer(){InitializeComponent();}protectedoverridevoidOnStart(string[]args){sendmail();//functiontosendemail.createOrderTimer=newSys