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

Delphi Discussion :

Eteindre mon PC par programmation


Sujet :

Delphi

  1. #1
    Membre du Club Avatar de Bouguennec
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 58
    Points : 61
    Points
    61
    Par défaut Eteindre mon PC par programmation
    Je voudrais créer un logiciel de sécurité pour mon PC, seul hic je ne connais pas la commande à réaliser sous Delphi (version 6) qui éteint mon ordinateur. Certain diront que c'est bidon mais c'est surtout l'envie de le faire moi même qui me plait.
    Je tourne en rond ... même dans les lignes droites !!!

  2. #2
    Inactif
    Inscrit en
    Août 2005
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 78
    Points : 68
    Points
    68
    Par défaut
    si j'ai bien compris tu veux un code pour éteindre ton ordinateur : voila tu la met sous un buttonclick :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ExitWindows(EX_RESTARTWINDOWS, 0); //Ferme la session
    ExitWindows(EX_REBOOTSYSTEM, 0);//Relance l'ordinateur
    ExitWindows(EX_EWX_shutDown, 0);//Arrête l'ordinateur
    [Modération]
    Merci d'utiliser les balises code, Laurent Dardenne
    [/Modération]

  3. #3
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 62
    Points : 63
    Points
    63
    Par défaut
    voici un procedure qui permet de fermer ou redémarrer windows en toute sécurité:
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    procedure FermerWindows(bReboot: boolean);
    var sTokenIn,sTokenOut : TTOKENPRIVILEGES ;
    dwLen : DWORD ;
    hCurrentProcess,hToken : THANDLE ;
    Luid1 : TLargeInteger ;
    osVer: OSVERSIONINFO;
    begin
    try
    hCurrentProcess := GetCurrentProcess ;
    //ajuste les privilèges, c ce ki est necessaire pour windows XP
    OpenProcessToken (hCurrentProcess,TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,hToken);
    LookupPrivilegeValue(nil,'SeShutdownPrivilege',Luid1) ;
    sTokenIn.PrivilegeCount := 1;
    sTokenIn.Privileges[0].Luid := Luid1;
    sTokenIn.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
    AdjustTokenPrivileges(hToken,FALSE,sTokenIn,sizeof(TTOKENPRIVILEGES),sTokenOut,dwLen);
    CloseHandle (hToken);
    finally
    application.ProcessMessages;
    //redemarre
    if bReboot then ExitWindowsEx(EWX_REBOOT or EWX_FORCEIFHUNG, 0)
    else
    begin
    //arrêt
    osVer.dwOSVersionInfoSize := Sizeof(osVer);
    GetVersionEx(osVer);
    if osVer.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS //test pour la version de windows (9x ou XP)
    then ExitWindowsEx(EWX_SHUTDOWN or EWX_FORCEIFHUNG , 0)
    else ExitWindowsEx(EWX_POWEROFF or EWX_FORCEIFHUNG , 0);
    end;
    end;
    end;
    mets bReboot a TRUE pour redemarrer et à FALSE pour quitter windows

  4. #4
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    ou encore appeler l'utilitaire shutdown.ex (fournie en standard avec WindowsXP au moins) avec un shellexec.

    pour une liste des paramètres de shutdown, executes le sur la console et n'aies pas peur, shutdown.exe sans paramètres ne ferme pas le pc, mais affiche la syntaxe !

  5. #5
    Membre du Club Avatar de Bouguennec
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 58
    Points : 61
    Points
    61
    Par défaut
    J'ai opté pour:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShellExecute(handle,PChar('open'),PChar('shutdown.exe'),PChar('-s -c "Ton ordinateur va s''éteindre"'),nil,0);
    Avec comme on me l'a conseillé ShellAPI.
    J'aime bien le petit message et en plus on peut toujours annuler l'estinction c'est pratique au cas où.
    Merci à tous
    Je tourne en rond ... même dans les lignes droites !!!

  6. #6
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    A tout ceci, j'ajouterais
    http://delphi.developpez.com/faq/?pa...StopRunWindows
    Sinon ça sert à quoi que Ducros il se décarcasse
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/03/2010, 10h57
  2. Réponses: 5
    Dernier message: 15/06/2009, 18h41
  3. [Foxpro]Connexion ODBC par programme
    Par Richard MORRISSEY dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 07/07/2003, 21h55
  4. Enregistrement du son par programme
    Par Invité dans le forum C++Builder
    Réponses: 3
    Dernier message: 10/06/2003, 23h13
  5. Comment créer un nouveau dossier par programmation ?
    Par annecyrond dans le forum Langage
    Réponses: 3
    Dernier message: 27/03/2003, 07h59

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