Logisleep : permet de fermer la session, d'éteindre ou de redémarrer votre ordinateur dans un temps ou une heure donnée.

Soyez le premier à donner votre avis sur cette source.

Vue 10 951 fois - Téléchargée 1 336 fois

Description

Comme dit dans le titre il premet de fermer la session windows, d'éteindre l'ordinateur ou de le redémarrer dans un temps donné (comme la fonctio sleep sur les tv ou radio réveil) ou à une heure précise.
Le programme
- se met dans le systray (composant piconebarretache : http://phidels.com/php/index.php3?page=../php/mescompo/piconebarretache.htm)
- peut démarrer en même temps que windows (écriture dans la base de registre)
- peut afficher le décompte durant les 15 dernières secondes en OSD
- peut clignoter durant les 15 dernières secondes
- affiche le décompte dans la barre des taches
- garde en mémoire (lors d'une fermeture) les différentes saisies des utilisateurs (écriture dans un fichier ini)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
17
Date d'inscription
mercredi 28 juillet 2004
Statut
Membre
Dernière intervention
6 février 2014

Merci pour cette source.

Je l'ai modifié un peu et je vais pouvoir l'intégrer à mon projet.

sinon perso, j'ai toujours utilisé Application.Terminate c'est que j'ai appris en cours pour fermer l'application.

encore merci, by.

Pierre-Emmanuel
Messages postés
400
Date d'inscription
samedi 6 août 2005
Statut
Membre
Dernière intervention
11 février 2016
1
@Cirec : j'étais persuadé que l'integer pour halt était un interval de temps ^^. En traduction j'ai dis plein de boulettes sur ce thread. Comme quoi j'ai encore plein de chose à apprendre ce qui me rassure.

Mais bon c'est resté convivial c'est l'essentiel :).

@+
Messages postés
400
Date d'inscription
samedi 6 août 2005
Statut
Membre
Dernière intervention
11 février 2016
1
@Julio : Le FranckyForum n'a rien avoir avec le developpement donc promis je ne parle pas de Close, Application.terminate ou halt : promis ^^. C'est juste un site de recherche d'emplois dans le dommaine scientifique voili voilou.

Allez zou je dois faire la page d'index en html : que halt(0) soit avec vous .... Aie qui a lancé une tomate ? Arrr c'est Qoprek : attention toi lol
Messages postés
11
Date d'inscription
vendredi 18 août 2006
Statut
Membre
Dernière intervention
26 mars 2007

Var InstanceApplication : TMaMethodeDetectionMultiInstance;

// Garantir l'accès aux libérations dans les cas des exceptions sur Finalization (par exemple: http://qc.borland.com/wc/qcmain.aspx?da=179)
Procedure DoneApplication;
Begin
With Application Do Begin
If Handle <> 0 then ShowOwnedPopups(Handle, False);
ShowHint := False;
Destroying;
DestroyComponents;
End;
End;

Begin
// Vérifier que l'on ait déja pas une instance de l'application en mémoire
InstanceApplication := TMaMethodeDetectionMultiInstance.Create(Application);
// Si oui alors on sort a ce moment pour n'en laisser qu'une en mémoire
If InstanceApplication.InstanceDejaExistante Then Exit;
// On encadre le fonctionnement global pour contrôler toutes les libérations
Try
// On encadre le fonctionnement global pour intercepter au plus bas niveau les exceptions afin de les tracer si l'objet de trace est déjà/encore disponible
Try
Application.Initialize;
Application.Title := 'SlideShow';
// Création de l'objet de trace ici et non associé à une fiche afin de n'en pas être tributaire
MaTrace:=TMaMethodeDeTrace.CreerAujourdhui(Application,'SlideShow');
// Créations des fiches de l'application
Application.CreateForm(TfrmMain, frmMain);
// ... autres fiches éventuellement
// Exécution principale
Application.Run;
Except
On E : Exception Do Begin
// Objet trace disponible ? alors on peut tracer ...
If Assigned(MaTrace) Then Begin
MaTrace.Ecrire('Exception occured while running application on "%s": "%s"',[E.ClassName,E.Message],0);
End;
End;
End;
Finally
// Libération des fiches et objets annexes
Try
// Pour toutes les fiches n'étant pas la fiche principale
// ....
// If Assigned(FormAutre) Then Begin FormAutre.Free;FormAutre := Nil; End;
// ...
// On libère le journal en dernier car c'est lui qui a la responsabilité des traces
MaTrace.Free;
// Ce dernier Application.ProcessMEssages est absolument nécessaire pour traiter les derniers messages en suspens
// notament les messages du thread de dialogue inter processus si on gère ce genre de mécanisme dans son application
Application.ProcessMessages;
Except
On E : Exception Do Begin
// Objet trace disponible ? alors on peut tracer ...
If Assigned(MaTrace) Then Begin
MaTrace.Ecrire('Exception occured while ending application: "%s"',[E.Message],0);
End;
End;
End;
// Maintenant on libère l'application. Cette libération est faite manuellement
// car il se peut que des exceptions aient laissé l'objet application dans un
// état instable (pas accès a la finalization de forms.pas).
// On encadre donc cette libération par des try... except vides afin d'éviter les
// runtime error 216
Try
DoneApplication;
// Si DoneApplication génère une exception alors on ne tente même pas le free... tant pis !
Application.Free;
Except
// Une première exception a pu laisser Application dans un état instable.
// On ne tient donc pas compte des exceptions qui peuvent apparaître ici
End;
// Remise à nil afin d'éviter le traitement du free dans le source forms.pas
Application := Nil;
End;
End.


Voyons avec un .dpr classique, par exemple ton programme de SlideShow, la différence de sécurisation est quand même visible, même si tu ne gère qu'une fiche, non ? Bon il est vrai que ce genre de blindage est surtout utile sur des gros applicatifs avec plein d'objets crées dans le dpr ...


begin
Application.Initialize;
Application.CreateForm(TfrmMain, frmMain);
Application.Run;
end.

----->

Procedure DoneApplication;
Begin
With Application Do Begin
If Handle <> 0 then ShowOwnedPopups(Handle, False);
ShowHint := False;
Destroying;
DestroyComponents;
End;
End;

Begin
InstanceApplication := TMaMethodeDetectionMultiInstance.Create(Application);
If InstanceApplication.InstanceDejaExistante Then Exit;
Try
Try
Application.Initialize;
Application.Title := 'SlideShow';
MaTrace := TMaMethodeDeTrace.CreerAujourdhui(Application,'SlideShow');
Application.CreateForm(TfrmMain, frmMain);
Application.Run;
Except
On E : Exception Do
If Assigned(MaTrace) Then MaTrace.Ecrire('Exception durant l''exécution de SlideShow sur "%s": "%s"',[E.ClassName,E.Message],0);
End;
Finally
Try
MaTrace.Free;
DoneApplication;
Application.Free;
Except
End;
Application := Nil;
End;
End.
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
13
quelle adresse le FranckyForum ? :D
Afficher les 24 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.