Activé/Désactivé/Voir état services windows
Publié : ven. 18/juil./2014 23:39
Voiçi un petit début de code pour voir modifier l'état d'un service windows, (quelque exemple dans mon code)
pratique pour créer un programme automatique de désactivation de services gourmand en cpu !
Nésiter pas à commenter ! dire ce que vous en pensez; donner des services pouvant êtres désactivé, etc...
pratique pour créer un programme automatique de désactivation de services gourmand en cpu !
Code : Tout sélectionner
; Lire une chaine dans le registre
Procedure.s ReadRegKey(OpenKey.l,SubKey.s,ValueName.s) ; ====================================== ReadRegKey
;key.s=ReadRegKey(#HKEY_LOCAL_MACHINE,"SOFTWARE\Zone Labs\ZoneAlarm","InstallDirectory")
hKey.l=0
keyvalue.s= Space (255)
DataSize.l=255
If RegOpenKeyEx_ (OpenKey,SubKey,0, #KEY_READ ,@hKey)
keyvalue= ""
Else
If RegQueryValueEx_ (hKey,ValueName,0,0,@keyvalue,@DataSize)
keyvalue= ""
Else
keyvalue= Left (keyvalue,DataSize-1)
EndIf
RegCloseKey_ (hKey)
EndIf
ProcedureReturn keyvalue
EndProcedure
; ecrire une chaine dans le registre
Procedure.l WriteRegKey(OpenKey.l,SubKey.s,keyset.s,keyvalue.s) ; ------------------------ WRITE KEY
; result.l=WriteRegKey(#HKEY_LOCAL_MACHINE,"SOFTWARE\Test Program Name","Test","TestValue")
hKey.l=0
If RegCreateKey_ (OpenKey,SubKey,@hKey)=0
Result=1
DataSize.l= Len (keyvalue)
If RegSetValueEx_ (hKey,keyset,0, #REG_SZ ,@keyvalue,DataSize)=0
Result=2
EndIf
RegCloseKey_ (hKey)
EndIf
ProcedureReturn Result
;returns 0 if error / could not open or create SubKey
;returns 1 if error / could not write new value
;returns 2 if Success!!
EndProcedure
; ecrire un long dans le registre
Procedure.l WritebinaryRegKey(OpenKey.l,SubKey.s,keyset.s,keyvalue.l) ; ------------------------ WRITE KEY
; result.l=WriteRegKey(#HKEY_LOCAL_MACHINE,"SOFTWARE\Test Program Name","Test","TestValue")
hKey.l=0
If RegCreateKey_ (OpenKey,SubKey,@hKey)=0
Result=1
DataSize.l=4 ; nombre d'octets ecrit !!
If RegSetValueEx_ (hKey,keyset,0, #REG_BINARY ,@keyvalue,DataSize)=0
Result=2
EndIf
RegCloseKey_ (hKey)
EndIf
ProcedureReturn Result
;returns 0 if error / could not open or create SubKey
;returns 1 if error / could not write new value
;returns 2 if Success!!
EndProcedure
; ecrire un long dans le registre
Procedure.l WriteDWRegKey(OpenKey.l,SubKey.s,keyset.s,keyvalue.l) ; ------------------------ WRITE KEY
; result.l=WriteRegKey(#HKEY_LOCAL_MACHINE,"SOFTWARE\Test Program Name","Test","TestValue")
hKey.l=0
If RegCreateKey_ (OpenKey,SubKey,@hKey)=0
Result=1
DataSize.l=4 ; nombre d'octets ecrit !!
If RegSetValueEx_ (hKey,keyset,0, #REG_DWORD ,@keyvalue,DataSize)=0
Result=2
EndIf
RegCloseKey_ (hKey)
EndIf
ProcedureReturn Result
;returns 0 if error / could not open or create SubKey
;returns 1 if error / could not write new value
;returns 2 if Success!!
EndProcedure
Procedure.l DelRegALLKey(OpenKey.l,SubKey.s,keyset.s) ; ------------------------ DELETE DOSSIER
; result.l=WriteRegKey(#HKEY_LOCAL_MACHINE,"SOFTWARE\Test Program Name")
hKey.l=0
If RegDeleteKey_(OpenKey,SubKey)=0
Result=2
EndIf
ProcedureReturn Result
;returns 0 if error / could not del SubKey
;returns 2 if Success!!
EndProcedure
Procedure.l DelRegKey(openkey.l,Subkey.s,keyset.s) ; efface une clef registre
If RegOpenKeyEx_(openkey.l, subkey.s, 0, keyset.s, @hKey) = #ERROR_SUCCESS ; ouvre la clée
If RegDeleteValue_(hKey, keyset.s):result=2:EndIf ; efface la valeur
RegCloseKey_(hKey)
Else
result=0
EndIf
ProcedureReturn result
EndProcedure
Procedure.s getetatservice(servicename.s)
etatservice.s=ReadRegKey(#HKEY_LOCAL_MACHINE,"SYSTEM\CurrentControlSet\services\"+servicename.s,"Start")
ProcedureReturn etatservice.s
EndProcedure
Procedure setetatservice(servicename.s,etat.l)
WritedwRegKey(#HKEY_LOCAL_MACHINE,"SYSTEM\CurrentControlSet\services\"+servicename.s,"Start",etat.l)
EndProcedure
;1=Demarrage System
;2=automatique
;3=manuel
;4=desactiver
;Registre a distance = RemoteRegistry
;Assistance IPV6 = iphlpsvc
;Branchcach = PeerDistSvc
;Windows Search = WSearch
;Windows Connect Now = wcncsvc
;WebClient = WebClient
;Téléphonie = TapiSrv
;Télécopie = Fax
;Stratégie de retrait de la carte à puce = SCPolicySvc
;Service Panneau de saisie Tablet PC = TabletInputService
;Service Initiateur iSCSI de Microsoft = MSiSCSI
;Service hôte WDIServiceHost = WdiServiceHost
MessageRequester("service","Etat du service : "+Str(Asc(getetatservice("RemoteRegistry"))))
setetatservice("RemoteRegistry",4)
MessageRequester("service","Etat du service modifier à : "+Str(Asc(getetatservice("RemoteRegistry"))))
End 0