service_name=r'SysMain' # Enter the service name want to monitor

import os
import re
import ctypes
import sys

def alert(arg): 
   sys.stderr.write("%d%d%d" % (arg, arg, arg))

   
class disable_file_system_redirection:
    _disable = ctypes.windll.kernel32.Wow64DisableWow64FsRedirection
    _revert = ctypes.windll.kernel32.Wow64RevertWow64FsRedirection
    def __enter__(self):
        self.old_value = ctypes.c_long()
        self.success = self._disable(ctypes.byref(self.old_value))
    def __exit__(self, type, value, traceback):
        if self.success:
            self._revert(self.old_value)
            
def service():
    with disable_file_system_redirection():
        y=os.popen("wmic service "+service_name+" get state").read()        
        if "Stopped" in y:
            d=os.popen("time /t").read()
            if "AM" in d or "PM" in d:
                f=re.findall("(.*)AM", d)
                if not f:
                    g=re.findall("(.*)PM", d)
                    t_h=re.findall("(.*):", g[0])
                    h_am=t_h[0].strip()
                    t_m=re.findall(":(.*)", g[0])
                    m_am=t_m[0].strip()
                    if h_am== "08":
                        alert(0)
                        print 'Service : "%s" has been stopped between the range 8 PM - 9 PM' %(service_name)
                    elif h_am == "09":
                        if m_am == "00":
                            alert(0)
                            print 'Service : "%s" has been stopped between the range 8 PM - 9 PM' %(service_name)
                    else:
                        alert(1)
                        print 'Service : "%s" has been stopped' %(service_name)
                        
                else:
                    alert(1)
            else:
                g=re.findall("(.*):", d)
                h_am=g[0].strip()
                v=re.findall(":(.*)", d)
                m_am=v[0].strip()
                if h_am== "20":
                    alert(0)
                    print 'Service : "%s" has been stopped between the range 8 PM - 9 PM' %(service_name)
                elif h_am == "21":
                    if m_am == "00":
                        alert(0)
                        print 'Service : "%s" has been stopped between the range 8 PM - 9 PM' %(service_name)
                else:
                    alert(1)
                    print 'Service : "%s" has been stopped' %(service_name)
        elif "Running" in y:
            alert(0)
            print 'Service : "%s" is Running'%(service_name)
        else:
            alert(0)
            print 'Service : "%s" is not found on the Endpoint'%(service_name)

service()

