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++Builder Discussion :

commande arret Pc


Sujet :

C++Builder

  1. #1
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    279
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 279
    Points : 71
    Points
    71
    Par défaut commande arret Pc
    Apres avoir vue sur le faq http://cpp.developpez.com/faq/bcb/?p...ndreordinateur

    J'ai essayer la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ExitWindowsEx(EWX_POWEROFF | EWX_FORCE,0);ou ExitWindowsEx(EWX_POWEROFF ,0);
    Cette commande ne fonctionne pas sa me fait rien j'ai fait juste une teste en mettant un bouton sur ma fiche et mi cette commande si quelqu'un peut m'aider

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Points : 713
    Points
    713
    Par défaut
    Bouton avec shell execute
    %systemroot%\system32\shutdown.exe -s -t

    ou pour le reboot

    %systemroot%\system32\shutdown.exe -r -t


    ++

  3. #3
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Pour plus de détail sur les commandes de cedni tu peux consulter la page suivante: http://support.microsoft.com/kb/317371
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

  4. #4
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    279
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 279
    Points : 71
    Points
    71
    Par défaut
    Merci pour la commande %systemroot%\system32\shutdown.exe -s -t

    Ma sais quoi le shell execute (c'est une commande qui permet d'executer automatiquement) mais c'est quoi le code de se shelle avec ma commande

  5. #5
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Salut darkman13130
    Regarde ce lien je pense que cela t'aidera
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  6. #6
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    279
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 279
    Points : 71
    Points
    71
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShellExecute(NULL,"open","%systemroot%\system32\shutdown.exe -s -t", NULL, NULL, SW_SHOWNORMAL);
    Cette commande ne fonctionne pas sur un bouton n'y sur autre chose d'ailleur lol comment faire??

  7. #7
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Essaye en doublant tes antislash comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShellExecute(NULL,"open","%systemroot%\\system32\\shutdown.exe -s -t", NULL, NULL, SW_SHOWNORMAL);
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  8. #8
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    En lisant le lien jusque la fin j'aurais plutot essaye quelque chose comme ceci avec une reserve pour les parametres "-s-t"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ShellExecute(NULL,"open","c:\\windows\\system32\\shutdown.exe -s -t", NULL, NULL, SW_SHOWNORMAL);
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  9. #9
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    En ecrivant comme ceci ca cherche a deconnecter un ordinateur distant, la facon d'ecrire semble bonne reste a voir le passage des parametres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    AnsiString Commande = "c:\\windows\\system32\\mstsc.exe";
    AnsiString Parametre = " /v: -s-t /console";
    ShellExecute(NULL,"open",Commande.c_str(), Parametre.c_str(), NULL, SW_SHOWNORMAL);
    }
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  10. #10
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    Citation Envoyé par darkman13130 Voir le message
    Apres avoir vue sur le faq http://cpp.developpez.com/faq/bcb/?p...ndreordinateur

    J'ai essayer la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ExitWindowsEx(EWX_POWEROFF | EWX_FORCE,0);ou ExitWindowsEx(EWX_POWEROFF ,0);
    Cette commande ne fonctionne pas sa me fait rien j'ai fait juste une teste en mettant un bouton sur ma fiche et mi cette commande si quelqu'un peut m'aider
    Il faut que ton application ai les privilèges nécessaires pour d'éteindre Windows:

    Code : 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
     
    //# FONCTION QUI MODIFIE LES PRIVILEGES
    bool __fastcall TForm1::SetPrivilege(AnsiString name, bool grant)
    {
       TOKEN_PRIVILEGES wTokenIn, wTokenOut;
       DWORD wLength;
       HANDLE wCurrentProcess, wToken;
       _LUID wLuid;
       bool ret;
     
       wCurrentProcess = GetCurrentProcess();
       OpenProcessToken(wCurrentProcess, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &wToken);
       LookupPrivilegeValue(NULL, name.c_str(), &wLuid);
       wTokenIn.PrivilegeCount = 1;
       wTokenIn.Privileges[0].Luid = wLuid;
       wTokenIn.Privileges[0].Attributes = (grant?SE_PRIVILEGE_ENABLED:0);
       ret = AdjustTokenPrivileges(wToken, FALSE, &wTokenIn, sizeof(TOKEN_PRIVILEGES), &wTokenOut,&wLength) ;
       CloseHandle(wToken);
       return ret;
    }
    Ensuite pour éteindre ton PC tu place ce code dans le OnDestroy de ta fiche principale (par exemple):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void __fastcall TForm1::FormDestroy(TObject *Sender)
    {
        SetPrivilege("SeShutdownPrivilege",true);
        ExitWindowsEx(EWX_POWEROFF | EWX_FORCE,0);
        SetPrivilege("SeShutdownPrivilege",false);
    }
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  11. #11
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Salut sat83
    J'ai teste ton code et la ca fonctionne, il y a quand meme quelque chose que je ne comprend pas, j'ai teste la fonction FAQ sur mon ordi perso sur lequel je suis en mode administrateur et ca ne fonctionnait pas, ca consiste en quoi les privileges.
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  12. #12
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    279
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 279
    Points : 71
    Points
    71
    Par défaut
    c'est good sa marche en effet les privilege serve a quoi

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/08/2010, 08h26
  2. gestion d'erreur : forcer l'arret de la commande pause
    Par boubou38 dans le forum MATLAB
    Réponses: 2
    Dernier message: 06/05/2010, 16h18
  3. Arret Commande SQL dès un élément trouvé
    Par obione dans le forum Langage SQL
    Réponses: 13
    Dernier message: 17/06/2008, 08h31
  4. Réponses: 1
    Dernier message: 09/01/2008, 14h02
  5. Commande d'arret et de remédarrage d'un serveur
    Par nicoaix dans le forum Installation
    Réponses: 2
    Dernier message: 05/07/2006, 12h31

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