IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Arreter windows en c#


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Par défaut Arreter windows en c#
    Bonjour,
    existe t-il une classe en c# qui permette d'arreter windows, de fermer la session en cours....?
    merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    non, mais tu peux exécuter la commande "shutdown -s"

  3. #3
    Membre très actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Par défaut
    merci j'y ai pensé mais je voulais savoir sil ya une classe c# pour celà.
    merci Tomlev

  4. #4
    Membre chevronné
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Par défaut
    Regarde dans l'API Windows.
    Ici, ça à l'air d'être la bonne fonction.

  5. #5
    Membre très actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Par défaut
    merci bcp mais j'ai beau lire j'y comprends pas grand chose
    un bout de code serait le bienvenu

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Il faut utiliser l'interop pour déclarer la fonction dans le code C#, en mappant éventuellement les types natifs vers des types .NET:
    BOOL => bool
    UINT => uint
    DWORD => ulong

    Il est souvent utile de définir des énumérations pour le paramètres qui combinent des bits (flags).


    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
     
    using System.Runtime.InteropServices;
     
    // Valeur possible pour uFlags
    [Flags]
    enum ExitWindowsFlags : uint
    {
        LogOff = 0,
        PowerOff = 0x00000008,
        Reboot = 0x00000002,
        RestartApps = 0x00000040,
        Shutdown = 0x00000001,
        Force = 0x00000004,
        ForceIfHung = 0x00000010
    }
     
     
    class Toto
    {
     
        // Déclaration de la fonction
        [DllImport("User32.dll")]
        public static extern bool ExitWindowsEx(ExitWindowsFlags uFlags, ulong dwReason);
     
        static void Main(string[] args)
        {
            // Exemple d'utilisation:
            ExitWindowEx(ExitWindowsFlags.Shutdown | ExitWindowsFlags.Force, 0);
        }
     
    }

    Pour les raisons tu peux aussi faire un enum si besoin.

  7. #7
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Citation Envoyé par tomlev Voir le message
    non, mais tu peux exécuter la commande "shutdown -s"
    Ceci marche très bien et est bien plus simple, pourquoi faire autrement ?

  8. #8
    Membre chevronné
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Par défaut
    Citation Envoyé par ced600 Voir le message
    pourquoi faire autrement ?
    Pourquoi pas?

  9. #9
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Citation Envoyé par dahtah Voir le message
    Pourquoi pas?
    oui on peut voir les choses comme cela.
    Ok.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 59
    Par défaut
    Citation Envoyé par ced600 Voir le message
    Ceci marche très bien et est bien plus simple, pourquoi faire autrement ?
    Parce que ca marche pas sur 2000 mais que sur XP

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par All Jinx Voir le message
    Parce que ca marche pas sur 2000 mais que sur XP
    étonnant ça...
    enfin de toutes façons c'est sans doute plus propre d'appeler l'API ExitWindowsEx, en espérant qu'elle existe sous 2000

  12. #12
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Citation Envoyé par All Jinx Voir le message
    Parce que ca marche pas sur 2000 mais que sur XP
    En effet mais tu peux downloader l'outil shutdown et l'installer sur le poste qui possède Win2000 et alors cela marchera :
    http://www.petri.co.il/download_free_reskit_tools.htm

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pb arret windows (encore un !)
    Par superpye dans le forum Windows XP
    Réponses: 3
    Dernier message: 06/10/2007, 09h40
  2. [VB6]Arreter un service windows
    Par bouboussjunior dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 04/10/2004, 17h03
  3. Arret de windows
    Par jean tof dans le forum C++Builder
    Réponses: 2
    Dernier message: 03/04/2004, 19h53
  4. detection de l'arret de windows
    Par moimoimoi3x dans le forum C++Builder
    Réponses: 4
    Dernier message: 02/03/2004, 06h33
  5. Detection arret de windows
    Par philippe30 dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 21/09/2002, 18h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo