本期,边肖将为大家带来如何用Windows Service方式运行Python程序的信息。文章内容丰富,从专业角度进行分析和叙述。看完这篇文章,希望你能有所收获。 Python程序代码 Importwmiimportosc=wmi。wmi()观察器=C. win32 _ powermanagementevent。监视待机事件的watch _ for(事件类型=7) #语句;而true: OS。系统( kdlj。vbs’)#运行“连接宽带”的程序,这里还在用最后一个人的VBS码;Watcher()因为Python程序的控制台窗口总是在那里,所以看起来有点碍事。所以我想如果我能像windows服务管理器中的其他程序一样,把它作为windows服务来运行。 最后,我在《皮松格拉姆明贡温32》(by mark Hammond)一书中找到了相关介绍,其中: 有一个简单的模板,只需将Python程序代码放在相应的位置: #SmallestService.py # asacompleexpertingthesmellestpositionleservicewrittenpython。 importwin32serviceutil importwin32service importwin32event classsmallestpython onservice(win 32 service util。ServiceFramework): _ SVC _ name _= smallestpytonservice _ SVC _ display _ name _= ThEsmallstOpertyOnServiCe def__init__(self,args): win32 service util . ServiCe FrameWork . _ _ init _ _(self,args) #创建一个我们将使用的事件。 servicestop请求将设置事件。 self.hWaitStop=win32event。创建事件(无,0,0,无) defSvcStop(自): #在我们做任何事情之前,告诉我们进程。 自我。ReportServiceStatus(win 32 service。服务停止待定) # Andsetmyevent。 win 32事件。SetEvent(self.hWaitStop) defSvcDoRun(自): #把你的程序代码放在这里就可以了。 win 32事件。WaitForSingleObject(self . hwaitstop,win32event。无限) if__name__== __main__ : win32serviceutil。HandleCommandLine(smallestpython onservice) #括号中的名称可以改为其他名称,必须与类名一致; 接下来,只需安装该服务并在cmd下运行:SmallestService.pyinstall。 通过这种方式,您可以在windows服务管理器中找到一个名为“最小可能的pythonservice”的服务。如果设置为自动启动,它将自动启动并一直在后台运行。眼不见,心不烦。 但是,虽然目标已经实现,但是发现了一个小问题,那就是如果你想停止服务,关闭进度条会停滞不前,你必须在流程管理器中关闭pythonservice.exe。这个bug一直无法解决,就是当你关闭服务的时候,应该取消对待机事件的监控,否则就无法返回这个无限循环。 这就是如何以上述边肖共享的Windows Service的方式运行Python程序。如果有类似的疑惑,不妨参考以上分析了解。想了解更多,请关注行业信息渠道。