日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
以WindowsService的方式運行Python程序

Python程序代碼

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網綜合服務,包含不限于成都網站制作、成都網站設計、惠農網絡推廣、重慶小程序開發(fā)、惠農網絡營銷、惠農企業(yè)策劃、惠農品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學生創(chuàng)業(yè)者提供惠農建站搭建服務,24小時服務熱線:13518219792,官方網址:www.cdcxhl.com

 
 
 
  1. importwmi  
  2. importos  
  3. c=wmi.WMI()  
  4. watcher=c.Win32_PowerManagementEvent.watch_for(EventType=7)#監(jiān)視待機事件的語句;  
  5. whileTrue:  
  6. os.system("kdlj.vbs")#運行“連接寬帶“的程序,這里還是用了上次那位仁兄的vbs代碼;  
  7. watcher() 

由于運行時Python程序的控制臺窗口一直在那兒,看著有點礙事兒。于是乎想到要是能把他以windowsservice的方式運行,就像其他在windows服務管理器里的程序一樣。

最終,在"PythonProgrammingOnWin32"(byMarkHammond)這本書里找到了相關介紹,它里
面有一個簡單的模版,把Python程序代碼放入相應位置就可以了:

 
 
 
  1. #SmallestService.py  
  2. #  
  3. #AsampledemonstratingthesmallestpossibleservicewritteninPython.  
  4.  
  5. importwin32serviceutil  
  6. importwin32service  
  7. importwin32event  
  8.  
  9. classSmallestPythonService(win32serviceutil.ServiceFramework):  
  10. _svc_name_="SmallestPythonService" 
  11. _svc_display_name_="ThesmallestpossiblePythonService" 
  12. def__init__(self,args):  
  13. win32serviceutil.ServiceFramework.__init__(self,args)  
  14. #Createaneventwhichwewillusetowaiton.  
  15. #The"servicestop"requestwillsetthisevent.  
  16. self.hWaitStop=win32event.CreateEvent(None,0,0,None)  
  17.  
  18. defSvcStop(self):  
  19. #Beforewedoanything,telltheSCMwearestartingthestopprocess.  
  20. self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)  
  21. #Andsetmyevent.  
  22. win32event.SetEvent(self.hWaitStop)  
  23.  
  24. defSvcDoRun(self):
  25. #把你的程序代碼放到這里就OK了
    win32event.WaitForSingleObject(self.hWaitStop,win32event.INFINITE)

    if__name__=='__main__':
    win32serviceutil.HandleCommandLine(SmallestPythonService)
    #括號里的名字可以改成其他的,必須與class名字一致; 

接下來,只要安裝一下服務,cmd下運行:SmallestService.pyinstall就行了。

這樣,你就可以在windows服務管理器里找到一個名叫"ThesmallestpossiblePythonService"的服務了,設成自動啟動,就會開機自動啟動并且一直在后臺運行了。(眼不見心不煩,)

不過,這樣雖然達到目的了,但還是發(fā)現(xiàn)個小問題,就是要是想停止該服務,關閉的進度條就愣在那里不動了,必須在進程管理器里把pythonservice.exe關掉才行,這個bug一直沒法解決,就是關閉服務的同時,要把監(jiān)視待機事件取消,否則退不出這個死循環(huán)。要是哪位高人看到了,希望可以指點一二。

【編輯推薦】

  1. 淺談Python和C#中的Run As代碼實現(xiàn)方式
  2. 腳本語言排行榜 PHP、Ruby和Python領先
  3. Python選擇Mercurial Hg版本控制系統(tǒng)
  4. 在Python中解決中英文混雜出錯的問題
  5. 使用Oracle數(shù)據(jù)庫實現(xiàn)Python數(shù)據(jù)持久

文章題目:以WindowsService的方式運行Python程序
標題路徑:http://www.dlmjj.cn/article/codiggp.html