Bonjour,
Comment peut-on effectuer une instruction (envoyer un mail dans mon cas) juste avant la fermeture d'une session ou l'extinction de l'ordinateur ?
[..] Instructions avant extinction/fermeture de session
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- TopXm
- Niveau 6

- Messages : 260
- Enregistré le : mer. 25 mai 2011 16:37
- Localisation : Usa
- Status : Hors ligne
Re: [..] instructions avant extinction/fermeture de session
Hello 
Via l'éditeur de stratégie (GpEdit.msc)
=> Param Windows
=> Script (Démarrage / Arret)
Via l'éditeur de stratégie (GpEdit.msc)
=> Param Windows
=> Script (Démarrage / Arret)
► Afficher le texteCapture GPEDIT
Re: [..] instructions avant extinction/fermeture de session
merci, mais est-il possible de faire tout ça dans le script ?
- sylvanie
- Niveau 11

- Messages : 1556
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
Re: [..] instructions avant extinction/fermeture de session
Bonjour
En bricolant à partir de ce post :
https://www.autoitscript.fr/forum/viewt ... ion#p47496
et en exploitant donc l'udf ci présente en PJ, j' ai ici une fenêtre qui s'enregistre à l'évènement de fermeture de session et qui écrit dans un fichier sur le bureau pendant 10 secondes (histoire de bien tester l'attente pendant la déconnexion), et ne rend la main à Windows quand le travail est fini :
Je n'ai pas tester pour le cas du reboot. Si ça ne le fait pas, c'est à creuser ...
Après dans votre cas, rendez cette fenêtre invisible et le tour est joué
En bricolant à partir de ce post :
https://www.autoitscript.fr/forum/viewt ... ion#p47496
et en exploitant donc l'udf ci présente en PJ, j' ai ici une fenêtre qui s'enregistre à l'évènement de fermeture de session et qui écrit dans un fichier sur le bureau pendant 10 secondes (histoire de bien tester l'attente pendant la déconnexion), et ne rend la main à Windows quand le travail est fini :
► Afficher le texte
Je n'ai pas tester pour le cas du reboot. Si ça ne le fait pas, c'est à creuser ...
Après dans votre cas, rendez cette fenêtre invisible et le tour est joué
- Fichiers joints
-
WinAPIEx.au3- (1.63 Mio) Téléchargé 90 fois
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Re: [..] Instructions avant extinction/fermeture de session
Merci.
Si dans ma boucle principale je mets une condition qui renvoie à une fonction que j'ai créé quand l'ordi s'éteint, comment dois-je faire ?
Ex:
Si dans ma boucle principale je mets une condition qui renvoie à une fonction que j'ai créé quand l'ordi s'éteint, comment dois-je faire ?
Ex:
Code : Tout sélectionner
While 1
If <l'ordi s'eteint ou la session se ferme> Then
_MaFonction()
EndIf
WEnd- sylvanie
- Niveau 11

- Messages : 1556
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
Re: [..] Instructions avant extinction/fermeture de session
Bonjour,
La philosophie de l'enregistrement à l'évènement de fermeture n'est pas exactement à considérer comme tel.
Il s'agit plutôt de "On veux me fermer alors je déclenche ceci".
Dans votre script , mettez
après le GUISetState(). Si votre application n'est pas fenêtrée, alors créez une GUI invisible durant le moment où votre script attend la fermeture de session.
puis déclarez la fonction
où vous constatez l'appel à "APPEL_A_VOTRE_FONCTION_DE_FIN"
La philosophie de l'enregistrement à l'évènement de fermeture n'est pas exactement à considérer comme tel.
Il s'agit plutôt de "On veux me fermer alors je déclenche ceci".
Dans votre script , mettez
Code : Tout sélectionner
GUIRegisterMsg(0x0011, 'WM_QUERYENDSESSION')
_WinAPI_SetProcessShutdownParameters(0x03FF)
_WinAPI_ShutdownBlockReasonCreate($hForm, 'This application is blocking system shutdown because the saving critical data is in progress.')
puis déclarez la fonction
Code : Tout sélectionner
Func WM_QUERYENDSESSION($hWnd, $Msg, $wParam, $lParam)
Switch $hWnd
Case $hForm
APPEL_A_VOTRE_FONCTION_DE_FIN
_WinAPI_ShutdownBlockReasonDestroy($hForm)
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_QUERYENDSESSION
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.


