OVH Cloud OVH Cloud

Commande pour Fermeture de session sous Windows NT

11 réponses
Avatar
ThunderMusic
Bonjour,
J'ai comme projet de faire une application VB qui va fermer la
session courante sur un ordinateur en fonction de l'heure du système. Est-ce
qu'il existe une fonction(ou methode) pour fermer la session courante
lorsque je suis en Windows NT?

Merci

ThunderMusic

10 réponses

1 2
Avatar
Zoury
Salut Dany! :O)

Regarde le lien suivant :

How to Shut Down, Reboot, Log Off or Power Off
http://www.mvps.org/vbnet/code/system/exitwindowsex.htm


--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
Avatar
David
Voici un Exemple !!!

In VB 32-Bit:

Declare Function ExitWindowsEx Lib "user32" _
Alias "ExitWindowsEx" (ByVal uFlags As Long, _
ByVal dwReserved As Long) As Long

Public Const EWX_FORCE = 4
Public Const EWX_LOGOFF = 0
Public Const EWX_REBOOT = 2
Public Const EWX_SHUTDOWN = 1

Use it like:
Dim lRetVal as Long
lRetVal = ExitWindowsEx(EWX_SHUTDOWN, 0)
Avatar
Bismark Prods
et en VB.Net ?

"Zoury" a écrit dans le message de
news:%23u4QJ$
Salut Dany! :O)

Regarde le lien suivant :

How to Shut Down, Reboot, Log Off or Power Off
http://www.mvps.org/vbnet/code/system/exitwindowsex.htm


--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous




Avatar
Zoury
Salut David! :O)

Sous NT, il faut vérifier les privilièges du processus voulant utiliser
ExtiWindowsEx et augmenter ses droits s'il ne sont pas assez élévé. Regarde
de Randy dans le lien que j'ai posté pour plus de détail.

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
"David" wrote in message
news:%
Voici un Exemple !!!

In VB 32-Bit:

Declare Function ExitWindowsEx Lib "user32" _
Alias "ExitWindowsEx" (ByVal uFlags As Long, _
ByVal dwReserved As Long) As Long

Public Const EWX_FORCE = 4
Public Const EWX_LOGOFF = 0
Public Const EWX_REBOOT = 2
Public Const EWX_SHUTDOWN = 1

Use it like:
Dim lRetVal as Long
lRetVal = ExitWindowsEx(EWX_SHUTDOWN, 0)




Avatar
ThunderMusic
Ok, dans l'example il est dit que si il y a une application qui a des
données non-sauvegardées, le prompt apparraitra. Moi je ne veux pas que le
log off soit arreté par ca. Je présente déjà des fenetres d'avertissement
avant de faire le log off, mais il y a des grandes chances que ce log off se
fasse pendant qu'il n'y a personne devant l'ordinateur. Ca sera éxécuté la
nuit juste avant nos backups pour être certain qu'il n'y a plus personne qui
a des fichiers ouverts. Alors est-ce qu'il y a moyen de faire un vrai
"Force" pour qu'il n'attende pas pour une interaction de l'utilisateur? (il
faut se rappeler que je suis en NT4)

Merci

ThunderMusic


"Zoury" wrote in message
news:#u4QJ$
Salut Dany! :O)

Regarde le lien suivant :

How to Shut Down, Reboot, Log Off or Power Off
http://www.mvps.org/vbnet/code/system/exitwindowsex.htm


--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous




Avatar
Zoury
Salut Simon! :O)

1. Tu peux utilisé la même méthode (par API).

2. J'ai aussi trouvé ce bout de code, qui est beaucoup plus simple, posté
par Mathieu Kempé :
http://groups.google.com/groups?threadm=etbZALNGDHA.2072%40TK2MSFTNGP10.phx.gbl

je ne sais toutefois pas s'il y a des mauvais côté à utiliser cette
technique.. :O/

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
"Bismark Prods" wrote in message
news:
et en VB.Net ?

"Zoury" a écrit dans le message de
news:%23u4QJ$
> Salut Dany! :O)
>
> Regarde le lien suivant :
>
> How to Shut Down, Reboot, Log Off or Power Off
> http://www.mvps.org/vbnet/code/system/exitwindowsex.htm
>
>
> --
> Cordialement
> Yanick Lefebvre - MVP pour Visual Basic
> http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
> http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
>
> Merci de poster les réponses au groupe afin d'en faire profiter à tous
>
>




Avatar
Zoury
Si le flag EWX_FORCE est spécifié, le system n'envoi pas omet l'émission des
messages WM_QUERYENDSESSION et
Avatar
Bismark Prods
Ben c'est pas mal de l'avoir vu mais je te dirais que t'appeler un programme
externe me tente pas à première vue. J'aurais mieux aimé une fonction
statique interne au framework 1.1

Je vais chercher de toute manière merci Yannick

"Zoury" a écrit dans le message de
news:%23qtv$
Salut Simon! :O)

1. Tu peux utilisé la même méthode (par API).

2. J'ai aussi trouvé ce bout de code, qui est beaucoup plus simple, posté
par Mathieu Kempé :



http://groups.google.com/groups?threadm=etbZALNGDHA.2072%40TK2MSFTNGP10.phx.gbl

je ne sais toutefois pas s'il y a des mauvais côté à utiliser cette
technique.. :O/

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
"Bismark Prods" wrote in message
news:
> et en VB.Net ?
>
> "Zoury" a écrit dans le message de
> news:%23u4QJ$
> > Salut Dany! :O)
> >
> > Regarde le lien suivant :
> >
> > How to Shut Down, Reboot, Log Off or Power Off
> > http://www.mvps.org/vbnet/code/system/exitwindowsex.htm
> >
> >
> > --
> > Cordialement
> > Yanick Lefebvre - MVP pour Visual Basic
> > http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
> > http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
> >
> > Merci de poster les réponses au groupe afin d'en faire profiter à tous
> >
> >
>
>




Avatar
Zoury
je recommences...

Si tu spécifies le flag EWX_FORCE, le système omet l'émission des messages
WM_QUERYENDSESSION et WM_ENDSESSION ce qui ne laisse aucune chance autre
programme de fermer correctement. Les messages de sauvegardent n'ont
pourront être envoyé par le système. Aussi sur XP, si l'ordi est barré lors
de l'appelle de la méthode ExitWindowsEx() et que EWX_FORCE n'est pas
spécifie la fermeture échouera

Si tu travailles sur 2000 ou XP, utilise plutôt EWX_FORCEIFHUNG, qui lui
envoie les messages de fermetures de sessions *mais* force la fermeture dans
l'éventualité ou un message aurait été soumis à l'utilisateur et que ce
dernier n'y répond pas.

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
Avatar
Zoury
moi non plus je ne l'aime pas.. mais l'utilisation des APIs semblent être la
bonne manière de procéder. tous les exemples de fermeture trouvé en CSharp
emploi la méthode ExitWindowsEx()...

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
1 2