cs_paprika
Messages postés12Date d'inscriptionsamedi 23 mars 2002StatutMembreDernière intervention 8 avril 2002
-
4 avril 2002 à 17:50
ThibautXSG
Messages postés337Date d'inscriptionjeudi 25 février 2010StatutMembreDernière intervention26 août 2012
-
9 nov. 2010 à 15:35
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
ThibautXSG
Messages postés337Date d'inscriptionjeudi 25 février 2010StatutMembreDernière intervention26 août 2012 9 nov. 2010 à 15:35
quoi de plus facile que d'appuier sur le bouton pour etindre windows
azertop
Messages postés3Date d'inscriptiondimanche 11 mai 2003StatutMembreDernière intervention28 janvier 2007 25 févr. 2007 à 22:10
j'ai essayé, ca ne marche pas: 0 sur 10
MacKhdo
Messages postés4Date d'inscriptiondimanche 24 avril 2005StatutMembreDernière intervention 3 juin 2005 27 mai 2005 à 13:54
franchement un grand bravo a paprika pour cette solution pour le moins originale dommage que ce la ne marche pas en mode securisé...
Fox_Warrior
Messages postés1Date d'inscriptiondimanche 14 novembre 2004StatutMembreDernière intervention27 mars 2005 27 mars 2005 à 12:38
Hello je ne connais rien au sujet donc comment je fais pour utiliser ce code? merci d avance
ensiblob
Messages postés20Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 4 janvier 20051 27 nov. 2004 à 19:27
Merci, nikel ton prog, pas besoin de se prendre la tete pour faire un bon prog util
bennybenben
Messages postés7Date d'inscriptionlundi 18 août 2003StatutMembreDernière intervention 3 juillet 2006 22 avril 2004 à 12:20
Chalut à tous,
Au boulot, figurez-vous que c'est du win2000 pro ultra-administré... Alors finalement, aucune des solutions que j'ai pu trouver dans vos commentaires n'ont pu fonctionner... En même temps, je dois avouer que je suis une grosse brelle en matière de V'éh-béh !... Quoi qu'il en soit, j'ai opté pour adapter le code de Paprika au program manager de win2k...
Rendez-vous sur ma source ! ;)
ben.
azraelinou
Messages postés16Date d'inscriptionmercredi 12 mars 2003StatutMembreDernière intervention 1 octobre 2008 1 sept. 2003 à 17:54
moi, je suis dsl, j'avais vu ton post y a longtemps, mais j'avais pas voulu te decourager, mais je t'explik, si tu vas dans le panneau de config, dans l'administration d'utilisateurs et que tu va modifier la maniere dont les utilisateurs ouvrent et ferment la session, ou, mieux, si tu taquine un peu ton XP pour revenir a une version visuelle de XP pour gagner un peu de frame rate, et que tu enleve le style XP....
alors, la boite de dialogue de fermeture de choix de windows n'est plus la meme, et le tab ne fonctionne plus, voila pkoi je te mets la note de 10/10 en originalité, mais il t'aurais fallu verifier les parametres de windows pour etre sur que la solution du shutdown n'etait pas la plus simple avec un shell...
acidtoxik
Messages postés28Date d'inscriptiondimanche 12 mai 2002StatutMembreDernière intervention 2 janvier 2008 17 juin 2003 à 01:50
pour eteindre windows XP rien ne vaut :
shell "Shutdown -t 01 -s"
pour redemarrer:
shell "Shutdown -t 01 -r"
vas voir mes sources ya un porg qui eteint windowsXP
Coder :)))
bestfraggeur
Messages postés55Date d'inscriptiondimanche 22 octobre 2000StatutMembreDernière intervention13 décembre 2003 11 juin 2003 à 14:31
ton cod il est bien mais si tu fais un programme qui pour un e raison ou pour une autre désactive le alt f4 bas la ca marche po du tout
donc 8/10.
lol
cs_Urgo
Messages postés780Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention16 avril 20091 12 avril 2003 à 09:14
10/10 C juste ce que je cherchais ! :D
Merci
Linkman
Messages postés113Date d'inscriptionlundi 23 décembre 2002StatutMembreDernière intervention24 juin 2009 31 déc. 2002 à 14:54
Moi aussi je cherchais comment éteindre Windows, et cette astuce est tellement bête que j'y ai pas pensée
Bravo !!!
cs_paprika
Messages postés12Date d'inscriptionsamedi 23 mars 2002StatutMembreDernière intervention 8 avril 2002 8 avril 2002 à 15:36
Nickel le code! Merci d'y porter de l'intérêt l'ami!
DragonDo
Messages postés93Date d'inscriptionlundi 8 avril 2002StatutMembreDernière intervention22 juillet 2006 8 avril 2002 à 13:27
Tout d'abord un grand chapeau à paprika qui a judicieusement contourné le problème de l'arrêt de windows XP. Problème qui m'a du reste cassé le nez pendant quelques temps. Le code que je vous fournis ci-après n'est pas entièrement de moi (désolé !!!! :o)) mais je le fournis pour compléter l'astuce de notre ami paprika.
'----- Déclaration des types privés
Type LUID
LowPart As Long
HighPart As Long
End Type
Type LUID_AND_ATTRIBUTES
pLuid As LUID
Attributes As Long
End Type
Type TOKEN_PRIVILEGES
PrivilegeCount As Long
Privileges(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES
End Type
'----- Déclaration des fonctions et procédures
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Declare Function OpenProcessToken Lib "advapi32" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long
Private Declare Function LookupPrivilegeValue Lib "advapi32" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LUID) As Long
Private Declare Function AdjustTokenPrivileges Lib "advapi32" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, PreviousState As TOKEN_PRIVILEGES, ReturnLength As Long) As Long
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Private Sub Command1_Click()
'----- Déclaration des variables locales
Dim hProc As Long
Dim hToken As Long
Dim mLUID As LUID
Dim mPriv As TOKEN_PRIVILEGES
Dim mNewPriv As TOKEN_PRIVILEGES
'----- Fermeture de Windows et extinction de l'ordinateur
ExitWindowsEx EWX_POWEROFF + EWX_SHUTDOWN + EWX_FORCE, 0
end sub
'----- Fin du code
Voilà, amusez-vous bien !
@+
cs_Pof
Messages postés78Date d'inscriptionlundi 11 février 2002StatutMembreDernière intervention 7 février 20061 6 avril 2002 à 18:34
Ben je met 10 pke c'est l'idée ki m'a laissé 'sur le c**'. Franchement la c'est une belle demonstration pour montrer que la simplicité est un bel atout : on ne cherche pas des truks farfelus, et ca marche ^^
cs_paprika
Messages postés12Date d'inscriptionsamedi 23 mars 2002StatutMembreDernière intervention 8 avril 2002 5 avril 2002 à 12:25
Merci d'avoir ajouté ce code Mercury! Cependant il ne marche pas sous XP. C'est pourquoi j'ai décidé de mettre un code d'un autre genre. Voilà, @+.
cs_Mercury
Messages postés329Date d'inscriptionjeudi 3 janvier 2002StatutMembreDernière intervention 7 octobre 2005 5 avril 2002 à 09:31
Je trouve l'idée géniale car la solution que tu as trouvé sort des sentiers battus ;-)
Voilà une idée bien originale.
Pour arrêter Windows, tu peux aussi utiliser la ligne de code suivante :
Si tu veux utiliser les API de Windows pour arrêter, redémarrer, te déconnecter d'une session, ou forcer l'arrêt de Windows en cas de plantage, utilises le code suivant :
1) Dans un module standard :
'Arrête Windows
Public Const EWX_SHUTDOWN = 1
'Déconnecte une session active :
Public Const EWX_LOGOFF = 0
'Redémarre Windows :
Public Const EWX_REBOOT = 2
'Force l'arrêt de Windows
Public Const EWX_FORCE = 4
'Appel de l'API :
Public Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dw As Long) As Long
2) Dans une Form, insére 4 boutons et colle le code suivant :
'Déconnecte une session ouverte
Private Sub Command1_Click()
ExitWindowsEx 0, 0
End Sub
'Arrête Windows
Private Sub Command2_Click()
ExitWindowsEx 1, 0
End Sub
'Redémarre Windows
Private Sub Command3_Click()
ExitWindowsEx 2, 0
End Sub
'Force l'arrêt de Windows
Private Sub Command4_Click()
ExitWindowsEx 4, 0
End Sub
Et voilà.
En espèrant que celà vous sera utile ;-)
@+
Mercury.
cass74
Messages postés12Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention 7 décembre 2002 5 avril 2002 à 09:15
J'apprécie ce code simple et surtout très astucieux.
Félicitation!!!!
cs_max12
Messages postés1491Date d'inscriptiondimanche 19 novembre 2000StatutModérateurDernière intervention 7 juillet 2014 4 avril 2002 à 23:36
LOL c'est la façon la plus simple qui existe, mais fallait y penser quand même c'est bien cool en plus c'est pas compliquer mais il y a aussi un API pour afficher le Fermer Windaube
A++
cs_paprika
Messages postés12Date d'inscriptionsamedi 23 mars 2002StatutMembreDernière intervention 8 avril 2002 4 avril 2002 à 18:10
En fait, le "Program Manager" te positionne sur le bureau. Ensuite, le % correspond à la touche Alt. Donc "%{F4}" appelle la combinaison de touche Alt+F4, ce qui correspond à la commande de fermeture d'une application. En l'occurence ici, celle de Windows. Voilà!
cs_nicolson
Messages postés29Date d'inscriptionmardi 26 février 2002StatutMembreDernière intervention28 janvier 20041 4 avril 2002 à 18:06
sympa ce petit code :)
Mais j'aimerais bien savoir à quoi sert le "%" devant les accolades...
C'est pour envoyer le signe % ? Mais ça sert à quoi ?
Nico
cs_paprika
Messages postés12Date d'inscriptionsamedi 23 mars 2002StatutMembreDernière intervention 8 avril 2002 4 avril 2002 à 17:50
Ca fait plaisir qu'aucun de vous daigne laisser un commentaire pour me remercier, alors que cela vous a posé tant de problèmes (cf. le forum)... Enfin, je vais pas trop me plaindre, au moins, j'ai pas un commentaire du style "Ouais, le code est déjà 10000 fois sur le site!". A bon entendeur.
9 nov. 2010 à 15:35
25 févr. 2007 à 22:10
27 mai 2005 à 13:54
27 mars 2005 à 12:38
27 nov. 2004 à 19:27
22 avril 2004 à 12:20
Au boulot, figurez-vous que c'est du win2000 pro ultra-administré... Alors finalement, aucune des solutions que j'ai pu trouver dans vos commentaires n'ont pu fonctionner... En même temps, je dois avouer que je suis une grosse brelle en matière de V'éh-béh !... Quoi qu'il en soit, j'ai opté pour adapter le code de Paprika au program manager de win2k...
Rendez-vous sur ma source ! ;)
ben.
1 sept. 2003 à 17:54
alors, la boite de dialogue de fermeture de choix de windows n'est plus la meme, et le tab ne fonctionne plus, voila pkoi je te mets la note de 10/10 en originalité, mais il t'aurais fallu verifier les parametres de windows pour etre sur que la solution du shutdown n'etait pas la plus simple avec un shell...
17 juin 2003 à 01:50
shell "Shutdown -t 01 -s"
pour redemarrer:
shell "Shutdown -t 01 -r"
vas voir mes sources ya un porg qui eteint windowsXP
Coder :)))
11 juin 2003 à 14:31
donc 8/10.
lol
12 avril 2003 à 09:14
Merci
31 déc. 2002 à 14:54
Bravo !!!
8 avril 2002 à 15:36
8 avril 2002 à 13:27
'----- Le code
Option Explicit
'----- Déclaration des variables locales
Private Const EWX_LOGOFF = 0
Private Const EWX_SHUTDOWN = 1
Private Const EWX_REBOOT = 2
Private Const EWX_FORCE = 4
Private Const EWX_POWEROFF = 8 '<---- Très important !!!
Private Const TOKEN_ADJUST_PRIVILEGES = &H20
Private Const TOKEN_QUERY = &H8
Private Const SE_PRIVILEGE_ENABLED = &H2
Private Const ANYSIZE_ARRAY = 1
'----- Déclaration des types privés
Type LUID
LowPart As Long
HighPart As Long
End Type
Type LUID_AND_ATTRIBUTES
pLuid As LUID
Attributes As Long
End Type
Type TOKEN_PRIVILEGES
PrivilegeCount As Long
Privileges(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES
End Type
'----- Déclaration des fonctions et procédures
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Declare Function OpenProcessToken Lib "advapi32" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long
Private Declare Function LookupPrivilegeValue Lib "advapi32" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LUID) As Long
Private Declare Function AdjustTokenPrivileges Lib "advapi32" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, PreviousState As TOKEN_PRIVILEGES, ReturnLength As Long) As Long
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Private Sub Command1_Click()
'----- Déclaration des variables locales
Dim hProc As Long
Dim hToken As Long
Dim mLUID As LUID
Dim mPriv As TOKEN_PRIVILEGES
Dim mNewPriv As TOKEN_PRIVILEGES
'----- Autorise le programme à quitter Windows
hProc = GetCurrentProcess()
OpenProcessToken hProc, TOKEN_ADJUST_PRIVILEGES + TOKEN_QUERY, hToken
LookupPrivilegeValue "", "SeShutdownPrivilege", mLUID
mPriv.PrivilegeCount = 1
mPriv.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED
mPriv.Privileges(0).pLuid = mLUID
AdjustTokenPrivileges hToken, False, mPriv, 4 + (12 * mPriv.PrivilegeCount), mNewPriv, 4 + (12 * mNewPriv.PrivilegeCount)
'----- Fermeture de Windows et extinction de l'ordinateur
ExitWindowsEx EWX_POWEROFF + EWX_SHUTDOWN + EWX_FORCE, 0
end sub
'----- Fin du code
Voilà, amusez-vous bien !
@+
6 avril 2002 à 18:34
5 avril 2002 à 12:25
5 avril 2002 à 09:31
Voilà une idée bien originale.
Pour arrêter Windows, tu peux aussi utiliser la ligne de code suivante :
Call Shell("Rundll32.exe user,exitwindows", vbHide)
Si tu veux utiliser les API de Windows pour arrêter, redémarrer, te déconnecter d'une session, ou forcer l'arrêt de Windows en cas de plantage, utilises le code suivant :
1) Dans un module standard :
'Arrête Windows
Public Const EWX_SHUTDOWN = 1
'Déconnecte une session active :
Public Const EWX_LOGOFF = 0
'Redémarre Windows :
Public Const EWX_REBOOT = 2
'Force l'arrêt de Windows
Public Const EWX_FORCE = 4
'Appel de l'API :
Public Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dw As Long) As Long
2) Dans une Form, insére 4 boutons et colle le code suivant :
'Déconnecte une session ouverte
Private Sub Command1_Click()
ExitWindowsEx 0, 0
End Sub
'Arrête Windows
Private Sub Command2_Click()
ExitWindowsEx 1, 0
End Sub
'Redémarre Windows
Private Sub Command3_Click()
ExitWindowsEx 2, 0
End Sub
'Force l'arrêt de Windows
Private Sub Command4_Click()
ExitWindowsEx 4, 0
End Sub
Et voilà.
En espèrant que celà vous sera utile ;-)
@+
Mercury.
5 avril 2002 à 09:15
Félicitation!!!!
4 avril 2002 à 23:36
A++
4 avril 2002 à 18:10
4 avril 2002 à 18:06
Mais j'aimerais bien savoir à quoi sert le "%" devant les accolades...
C'est pour envoyer le signe % ? Mais ça sert à quoi ?
Nico
4 avril 2002 à 17:50