[..] Instructions avant extinction/fermeture de session

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
leoleolth
Niveau 4
Niveau 4
Messages : 68
Enregistré le : dim. 26 mai 2013 21:31
Status : Hors ligne

[..] Instructions avant extinction/fermeture de session

#1

Message par leoleolth »

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 ?
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [..] instructions avant extinction/fermeture de session

#2

Message par TopXm »

Hello :)

Via l'éditeur de stratégie (GpEdit.msc)

=> Param Windows
=> Script (Démarrage / Arret)
► Afficher le texteCapture GPEDIT
leoleolth
Niveau 4
Niveau 4
Messages : 68
Enregistré le : dim. 26 mai 2013 21:31
Status : Hors ligne

Re: [..] instructions avant extinction/fermeture de session

#3

Message par leoleolth »

merci, mais est-il possible de faire tout ça dans le script ?
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] instructions avant extinction/fermeture de session

#4

Message par sylvanie »

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 :
► 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.
leoleolth
Niveau 4
Niveau 4
Messages : 68
Enregistré le : dim. 26 mai 2013 21:31
Status : Hors ligne

Re: [..] Instructions avant extinction/fermeture de session

#5

Message par leoleolth »

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:

Code : Tout sélectionner

While 1

If <l'ordi s'eteint ou la session se ferme> Then
_MaFonction()
EndIf

WEnd
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Instructions avant extinction/fermeture de session

#6

Message par sylvanie »

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

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.')
 
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

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
 
où vous constatez l'appel à "APPEL_A_VOTRE_FONCTION_DE_FIN"
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Répondre