[Partiellement RÉSOLU] Delais avant mise en ecran de veille

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
brossden
Messages : 831
Inscription : lun. 26/janv./2004 14:37

[Partiellement RÉSOLU] Delais avant mise en ecran de veille

Message par brossden »

Comment changer le delais avant la mise en veille avec Pure basic et si possible sans rebooter !
Dernière modification par brossden le mar. 22/mai/2007 9:53, modifié 2 fois.
Denis

Bonne Jounée à tous
minirop
Messages : 321
Inscription : mer. 02/août/2006 21:06

Message par minirop »

changer ceci :
Image
directement avec l'API win32 ?
brossden
Messages : 831
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Oui changer le temps avant l'apparition de l'ecran de veille mais depuis purebasic !
Denis

Bonne Jounée à tous
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

brossden a écrit :Oui changer le temps avant l'apparition de l'ecran de veille mais depuis purebasic !
tous simplement en utilisant

Code : Tout sélectionner

 ; exemple d'utilisation comme chronomètre
  ;
  TempsDepart = ElapsedMilliseconds()  ; Récupère la valeur actuelle
  ;
  Delay(1000)  ; Attend 1000 millisecondes
  ;
  TempsEcoule = ElapsedMilliseconds()-TempsDepart  ; La valeur 'TempsEcoule' devrait être d'environ 1000 millisecondes

  Debug "Temps écoulé : "+Str(TempsEcoule)+" millisecondes" 
a partir du moment ou le code entre dans le screen saver,(la souris n'ayant toujours pas bougé)

tu chronometre
un certain temps avant de sauter dans l'effet du screensaver
non ? :)
brossden
Messages : 831
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Dobro je pense que tu n'as pas bien compris mon souhait.
Je veux pouvoir changer le paramètre de windows qui permet de choisir le délai avant l"apparition de l'ecran de veille !

J'ai écrit ceci mais il faut rebooter pour que la modif prenne effet.

Je vous explique le pourquoi de la chose.

Je suis dans une entreprise qui considère que les employés sont trop stupides pour avoir la main sur certains paramètres donc tout est verouillé. Alors le règne de l'astuce est de rigeur ....

Mon code qui n'est pas parfait avec deux procedures piquées à Dobro (merci à lui):

Code : Tout sélectionner

Enumeration
  #Window : #Spin : #Text : #Button
EndEnumeration

Global FontID1
FontID1 = LoadFont(1, "Comic Sans MS", 12, #PB_Font_Bold)

Procedure.s ReadRegKey(OpenKey.l,SubKey.s,ValueName.s); Piqué à Dobro !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  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

Procedure.l WriteRegKey(OpenKey.l,SubKey.s,keyset.s,keyvalue.s) ; Piqué à Dobro !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  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
EndProcedure

Procedure Open_Window_0()
  If OpenWindow(#Window, 358, 342, 362, 130, "Modification Paramètres ScreenSaver  -DOIM-",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
    If CreateGadgetList(WindowID(#Window))
      SpinGadget(#Spin, 160, 50, 60, 30, 0, 480)
      SetGadgetFont(#Spin, FontID1)
      TextGadget(#Text, 10, 20, 340, 20, "Modification du délais avant mise en veille", #PB_Text_Center)
      SetGadgetFont(#Text, FontID1)
      ButtonGadget(#Button,135,90,100,30,"Appliquer")
    EndIf
  EndIf
EndProcedure

Open_Window_0()
key.s=Str(Val(ReadRegKey(#HKEY_CURRENT_USER,"Control Panel\Desktop","ScreenSaveTimeOut"))/60)
SetGadgetText(#Spin,key)
SetGadgetState(#Spin,Val(key))

Repeat
  Event = WaitWindowEvent()
  GadgetID = EventGadget()
  If Event = #PB_Event_Gadget
    If GadgetID = #Spin
      SetGadgetText(#Spin,Str(GetGadgetState(#Spin)))
    ElseIf  GadgetID = #Button
      key=Str(GetGadgetState(#Spin)*60)
      WriteRegKey(#HKEY_CURRENT_USER,"Control Panel\Desktop","ScreenSaveTimeOut",key)
      key.s=Str(Val(ReadRegKey(#HKEY_CURRENT_USER,"Control Panel\Desktop","ScreenSaveTimeOut"))/60)
      SetGadgetText(#Spin,key)
      HideWindow(#Window,1)
      MessageRequester("Attention Attention !","Cette modification ne prendra effet"+Chr(13)+Chr(13)+"   qu'une fois votre PC redémarré")
      End
    EndIf
  EndIf
Until Event = #PB_Event_CloseWindow
End

Denis

Bonne Jounée à tous
lewkey
Messages : 45
Inscription : jeu. 26/avr./2007 20:39

Message par lewkey »

est-ce que ton entreprise à des PC sous XP???, et est ce que ce PC peut inscrire des .reg???
car j'ai eu ce problème (pour la vitesse de rafraichissement de l'écran à 60hz :roll: ) au bahut, et j'ai contourné pas mal de leur protection avec ce .reg.
brossden
Messages : 831
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Pour lewkey :
Oui dans ma boite les PC sont sous XP la Base de Registre est libre, c'est une obligation pour que XP fonctionne mais regedit et les scripts en .reg sont bloqués, mais aucune importance avec PureBasic ont fait des "presque miracles " lol !
Denis

Bonne Jounée à tous
lewkey
Messages : 45
Inscription : jeu. 26/avr./2007 20:39

Message par lewkey »

tiens, pour liberer certaines restrictions au lycé (par exemple, l'acces au disque C, les propriétées d'affichage pour mettre la fréquence de rafraichissement supérieur à 60Hz, le clic droit sur la barre démarrer, ...) auxquel on a souvent besoin en électronique (logiciels de compilation, de routage de carte électronique, de proghrammation, ...), voici un .REG que j'ai fait : tu n'as qu'a l'éditer et regarder tous ce qui peut te concerner :
http://lewkey.free.fr/deblokPCLYCE.reg
voilà.
Répondre