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