Arrêter l'ordinateur

Programmation d'applications complexes
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Arrêter l'ordinateur

Message par Le Soldat Inconnu »

Salut, j'ai un petit prob avec la fonction ExitWindowsEx_()

voila les paramètres (en anglais)
· uFlags
Specifies the type of shutdown. This parameter must be some combination of the following values:
EWX_FORCE
Forces processes To terminate. When this flag is set, Windows does not send the messages WM_QUERYENDSESSION And WM_ENDSESSION To the applications currently running in the system. This can cause the applications To lose Data. Therefore, you should only use this flag in an emergency.
EWX_LOGOFF
Shuts down all processes running in the security context of the process that called the ExitWindowsEx function. Then it logs the user off.
EWX_POWEROFF
Shuts down the system And turns off the power. The system must support the power-off feature.
Windows NT: The calling process must have the SE_SHUTDOWN_NAME privilege. For more information, see the following Remarks section.
Windows 95: Security privileges are not supported Or required.
EWX_REBOOT
Shuts down the system And then restarts the system.
Windows NT: The calling process must have the SE_SHUTDOWN_NAME privilege. For more information, see the following Remarks section.
Windows 95: Security privileges are not supported Or required.
EWX_SHUTDOWN
Shuts down the system To a point at which it is safe To turn off the power. All file buffers have been flushed To disk, And all running processes have stopped.
Windows NT: The calling process must have the SE_SHUTDOWN_NAME privilege. For more information, see the following Remarks section.
Windows 95: Security privileges are not supported Or required.

· dwReserved
Reserved; this parameter is ignored.
j'arrive à déconnecter l'utilisateur

Code : Tout sélectionner

ExitWindowsEx_(#EWX_LOGOFF, 0) ; Déconnecter
mais j'arrive pas à arrêter l'ordinateur, c'est normalement ce code ci mais marche pas :(

Code : Tout sélectionner

ExitWindowsEx_(#EWX_POWEROFF, 0)
j'ai essayé de combiner les flag sans résultat alors un petit cou p de main, ce serai pas de refus

Merci
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Il me semble que cette commande à été modifiée. Sur le sdk de 2003, il y a deux paramètres pour cette fonction.

Chris :)
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message par cederavic »

je vois bien 2 parametre la lol et chez moi non plus ça ne fonctionne pas
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Non, il n'y a qu'un paramètre, l'autre est reservé, donc inactif.
· dwReserved
Reserved; this parameter is ignored.
Sur le SDK, il y a deux paramètres à fournir.
BOOL ExitWindowsEx(
UINT uFlags,
DWORD dwReason

dwReason
[in] Reason for initiating the shutdown. This parameter must be one of the system shutdown reason codes.
Chris :)
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

Et c'est quoi, les "system shutdown reason codes" ?

ça aurait été un string, j'aurai bien mis "ben pour arrêter l'odinateur, c'te question !" mais comme c'est un long, je vois pas :lol:

bon v voir sur la sdk
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Je veux bien te les poster si tu veux, mais les constantes ne sont pas connues de Pure.

Et je n'ai pas le fichier .h pour les valeurs. (Je crois que c'est WinUser.h)

Chris :)
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

Oui, c'est ce que je viens de voir
il me faudrait la valeur de cette constante :

Code : Tout sélectionner

#SHTDN_REASON_MAJOR_APPLICATION
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

j'ai trouvé ça :
// Microsoft major reasons.
SHTDN_REASON_MAJOR_OTHER =$00000000;
SHTDN_REASON_MAJOR_NONE =$00000000;
SHTDN_REASON_MAJOR_HARDWARE =$00010000;
SHTDN_REASON_MAJOR_OPERATINGSYSTEM =$00020000;
SHTDN_REASON_MAJOR_SOFTWARE =$00030000;
SHTDN_REASON_MAJOR_APPLICATION =$00040000;
SHTDN_REASON_MAJOR_SYSTEM =$00050000;
SHTDN_REASON_MAJOR_POWER =$00060000;
http://forum.nifty.com/fdelphi/samples/01465.html
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

marche pas, ouin :(
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Code : Tout sélectionner

ExitwindowsEx_(1,0)
C'est tout con non ??? :P
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Ben ouais............ Surtout quand ça marche pas!!! :lol:

Chris :)
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Sa fonctionne sous win 98SE sans problèmes, mais il faut faire un EXE car sa bug avec Fasm
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

mais ça marche pas sur win2000 et win XP car y des trucs au niveau de la gestion des utilisateurs.

comprends pas. y font comment pour redémarrer l'ordi, les prog d'install ?

y'a aussi un autre fonction pour arrêter l'ordi :
InitiateSystemShutdown_(

dont les paramètres sont :
· lpMachineName
Points to the null-terminated string that specifies the network name of the computer to shut down. If lpMachineName is NULL or points to an empty string, the function shuts down the local computer.

· lpMessage
Points to a null-terminated string that specifies a message to display in the shutdown dialog box. This parameter can be NULL if no message is required.

· dwTimeout
Specifies the time (in seconds) that the dialog box should be displayed. While this dialog box is displayed, the shutdown can be stopped by the AbortSystemShutdown function.
If dwTimeout is not zero, InitiateSystemShutdown displays a dialog box on the specified computer. The dialog box displays the name of the user who called the function, displays the message specified by the lpMessage parameter, and prompts the user to log off. The dialog box beeps when it is created and remains on top of other windows in the system. The dialog box can be moved but not closed. A timer counts down the remaining time before a forced shutdown. If the user logs off, the system shuts down immediately. Otherwise, the computer is shut down when the timer expires.
If dwTimeout is zero, the computer shuts down without displaying the dialog box, and the shutdown cannot be stopped by AbortSystemShutdown.

· bForceAppsClosed
Specifies whether applications with unsaved changes are to be forcibly closed. If this parameter is TRUE, such applications are closed. If this parameter is FALSE, a dialog box is displayed prompting the user to close the applications.

· bRebootAfterShutdown
Specifies whether the computer is to restart immediately after shutting down. If this parameter is TRUE, the computer is to restart. If this parameter is FALSE, the system flushes all caches to disk, clears the screen, and displays a message indicating that it is safe to power down.
mais j'ai pas réussi à la faire marcher également.

Décidement, moi et l'API windows, on ne se somprendra jamais :? :cry:
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

comprends pas. y font comment pour redémarrer l'ordi, les prog d'install ?
Salut Régis,

tu as la dos MSDK installé sur ton ordi ? (c'est rien 700/800 Mo)

Moi, oui et suite à ton message j'ai tapé dans la recherche le mot restart et j'ai eu plusieurs réponses dont une qui devrait correspondre au redémarrage lors d'une install (j'ai pas regardé en détail comment faire).

J'ai fait une recherche sur le site MS avec mon résultat et voici l'URL de MS sur cette API

http://msdn.microsoft.com/library/defau ... action.asp

Il faudra que tu bricole dans la base de registre :mrgreen: :mrgreen:
:mrgreen:


Je ne sais pas si ca va t'aider mais bon ...
Dernière modification par Anonyme2 le sam. 21/févr./2004 6:31, modifié 1 fois.
Lukky
Messages : 340
Inscription : dim. 25/janv./2004 12:22
Localisation : Morbihan

Message par Lukky »

Moi j'utilise ça : "%windir%\System32\shutdown.exe -s -t 0" bon c'est une commande externe mais ça marche.

JL
Quand on me gonfle trop j'éclate, sinon ça va !
Répondre