PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Bolcage mise en veille Ppc
Bolcage mise en veille Ppc
Débuté par jpmercier, 11 oct. 2005 10:48 - 8 réponses
Posté le 11 octobre 2005 - 10:48
Bonjour,

Dans cette séquence de code, comment eu où est déclaré le mot gbLockScreenSaver ?
1°) Voici le code du timer :
IF gbLockScreenSaver = True THEN
// Permet d'éviter que le Pocket se mette en shutdown
// 25secondes, car le minimum est de 30s pour le passage en mode vieille
TimerSys("gProc_CancelAutoShutdown",2500,2)
END


2°) Et le code de procédure locale
PROCEDURE gProc_CancelAutoShutdown()

API("coredll.dll","SystemIdleTimerReset")
Amitiés
JPM
Posté le 11 octobre 2005 - 11:59
Bonjour,
A mon avis il s'agit une variable globale ( gb... ) déclarée donc dans l'initialisation du projet, et qui permet de bloquer ou non la mise en veille du pocketpc suivant les besoins.

Frédéric.
Posté le 11 octobre 2005 - 13:11
BOnjour, Christiant
Ben Non! Ca ne marche pas sur mon 2020i (même techno que le 9090)!
Peut être que la variable gb.. est mal initialisée...
J'aimerais avoir la syntaxe excate, si possible.
Encore ttes mes amitiés
JPM
Posté le 11 octobre 2005 - 13:36
Je pense que c'est le code que j'avais mis à dispo il y a quelques temps...

Pour info :

- "gbsLockScreenSaver" est effectivement une variable globale du projet (boolean). Elle est modifiée via une fenêtre de settings, et mémorisée dans la base de registre du Pocket

- L'appel à cet API ne semble pas fonctionner sous Windows Mobile 2002. Est-ce le cas de vos PocketPC ?


Julien
Posté le 11 octobre 2005 - 14:08
Le 11/10/2005, Frédéric DEMILLY a supposé :
Bonjour,
A mon avis il s'agit une variable globale ( gb... ) déclarée donc dans
l'initialisation du projet, et qui permet de bloquer ou non la mise en veille
du pocketpc suivant les besoins.

Frédéric.


Est-ce que la procédure marche chez vous car sur mon PPC (QTEK 9090)
elle ne fonctionne pas !

--
Bon développement à tous
Christian

cciochir@ _ at _ cmii.fr
Posté le 11 octobre 2005 - 14:40
Bonjour, Julien
Je suis Win 2003 SE et ca ne fonctionne pas.
Peut être que je m'y prend mal. Effectivement, je n'arrive pas comprendre la variable gbsLockScreenSaver. Il faut la déclarer en booléen standard ou avec cette syntaxe :
gbLockScreenSaver est un Booléen=API("coredll.dll","SystemIdleTimerReset")?
Sur quel évenement faut il mettre le code du Timer : initialisation de la fenêtre, prise de focus,etc...?
Merci de ton aide
Amitiés
JPM
Posté le 11 octobre 2005 - 15:21
Bonjour JPM,

Déjà, tu es en WM2003SE, donc il n'y a pas de raison pour que ça ne fonctionne pas !

1°) Déclarer une variable globale au projet :
gbsLockScreenSaver is boolean


2°) Dans le code d'initialisation du projet, tu lis la valeur de la clef dans la base de registre
gbLockScreenSaver = RegistreLit("HKEY_LOCAL_MACHINE\SOFTWARE\MonLogiciel\Settings","ScreenSaver")
NB : Cette clef a initialisée dans une fenêtre de paramétrage (voir point 4)


3°) Toujours dans l'initialisation du projet , tu déclenches ton timer si gbLockScreenSaver = True. Je l'ai mis au niveau de l'init du projet afin qu'il s'applique à l'ensemble de mes fenêtres :
IF gbLockScreenSaver = True THEN
// Permet d'éviter que le Pocket se mette en shutdown
TimerSys("gProc_CancelAutoShutdown",2500,2)
END
NB: La procédure "gProc_CancelAutoShutdown" est une procédure globale (déjà expliqué précédement)

4°) Faire une fenêtre de paramétrage avec un interupteur "Bloquer la mise en veille" (nommé "INT_SCREENSAVER") :
//*******************************
// A l'ouverture de la fenêtre
//*******************************
INT_SCREENSAVER = gbLockScreenSaver

//**********************************
// A la validation ou fermeture de la fenêtre
//***********************************
IF gbLockScreenSaver <> INT_SCREENSAVER THEN
IF INT_SCREENSAVER = True THEN
TimerSys("gProc_CancelAutoShutdown",2500,2)
ELSE
FinTimerSys(2)
END
RegistreEcrit "HKEY_LOCAL_MACHINE\SOFTWARE\MonLogiciel\Settings","ScreenSaver",NumToString(INT_SCREENSAVER))
END


Bien sur, le nom de la clef que j'ai utilisée peut être changée ;-)

En suivant cette logique, tout devrait rentrer dans l'ordre...

Cordialement,

Julien
Posté le 11 octobre 2005 - 15:31
Un super grand merci pour cette aide précieuse et détaillée.
Merci Julien. Pour toi, un tag de "un des meilleurs intervenants de ce forum"
Amitiés
JPM
Posté le 11 octobre 2005 - 15:58
Il n'y a pas de quoi ! Le forum est fait pour ça.
De plus, tu n'es pas non plus le dernier à dépanner les utilisateurs de ce forum.

Si tu souhaites discuter "off-line" de Windev Mobile ou d'autres projet, n'hésites pas à me contacter. Nous n'avons jamais finit d'aprendre ;-)

Amitiés,

Julien
julienmor1_at_free.fr