Accueil > Forum > > > > extinction PC XP
extinction PC XP
lundi 19 décembre 2005 à 10:30:08 |
extinction PC XP

i386
|
Bonjour,
je voudrais faire un petit programme en VB6 afin d'éteindre mon PC apres un délai saisie par l'utilisateur (notamment moi !!!)
donc tout simplement j'ai une textBox pour saisir le délai et un bouton pour le lancer.
code : Private sub command_click()
delai = val(text1.text)
shell ("shutdown -s -f -t " & "delai")
end sub
mais il me renvoie l'erreur d'execution '424' : un objet est requis
Je ne vois pas du tout pourquoi, pourriez vous m'aider.
Merci
|
|
lundi 19 décembre 2005 à 11:11:50 |
Re : extinction PC XP
|
lundi 19 décembre 2005 à 11:23:38 |
Re : extinction PC XP

i386
|
Merci Violent_Ken
Mais a part des commentaires, j'ai pas trouvé de source ...
Pourrais tu m'aider un peu plus.
Merci encore .
|
|
lundi 19 décembre 2005 à 11:25:39 |
Re : extinction PC XP

violent_ken
|
Violent Ken
Salut. En fait je viens de me rendre compte que la source n'existe plus ? Il y a les commentaires, mais pas de code. Donc voilà le code, littéralement tiré de la source que je t'ai conseillé : (à mettre dans un MODULE)
' déclarations des constantes pour l'api (c po moi ki les définis !!! lol demandé o kro$) Private Const EWX_LOGOFF = 0 Private Const EWX_SHUTDOWN = 1 Private Const EWX_REBOOT = 2 Private Const EWX_FORCE = 4 Private Const EWX_POWERDOWN = 8 Private Const TOKEN_ADJUST_PRIVILEGES = &H20 Private Const TOKEN_QUERY = &H8 Private Const SE_PRIVILEGE_ENABLED = &H2 Private Const ANYSIZE_ARRAY = 1 Private Const VER_PLATFORM_WIN32_NT = 2
' structure pour la version de l'OS Type OSVERSIONINFO dwOSVersionInfoSize As Long dwMajorVersion As Long dwMinorVersion As Long dwBuildNumber As Long dwPlatformId As Long szCSDVersion As String * 128 End Type
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
'bon alors ici on déclare les fonctions API Win32 (cf. API Win32) 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 Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (ByRef lpVersionInformation As OSVERSIONINFO) As Long
' fonction ki renvoi si l'OS est de type NT (interne) Public Function IsWinNT() As Boolean Dim myOS As OSVERSIONINFO myOS.dwOSVersionInfoSize = Len(myOS) GetVersionEx myOS IsWinNT = (myOS.dwPlatformId = VER_PLATFORM_WIN32_NT) End Function
' fonction qui active le ShutDown, au cas ou le système serais de type NT Private Sub EnableShutDown() Dim hProc As Long Dim hToken As Long Dim mLUID As LUID Dim mPriv As TOKEN_PRIVILEGES Dim mNewPriv As TOKEN_PRIVILEGES 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) End Sub
' fonction qui éteint le PC (Force=true oblige le traitement) Public Sub ShutDownNT(Force As Boolean) Dim ret As Long Dim FLAGS As Long FLAGS = EWX_SHUTDOWN If Force Then FLAGS = FLAGS + EWX_FORCE If IsWinNT Then EnableShutDown ExitWindowsEx FLAGS, 0 End Sub
' fonction qui éteint totalement la tour (Force=true oblige le traitement) Public Sub PowerDownNT(Force As Boolean) Dim ret As Long Dim FLAGS As Long FLAGS = EWX_POWERDOWN If Force Then FLAGS = FLAGS + EWX_FORCE If IsWinNT Then EnableShutDown ExitWindowsEx FLAGS, 0 End Sub
' fonction qui fait rebooter l'OS (Force=true oblige le traitement) Public Sub RebootNT(Force As Boolean) Dim ret As Long Dim FLAGS As Long FLAGS = EWX_REBOOT If Force Then FLAGS = FLAGS + EWX_FORCE If IsWinNT Then EnableShutDown ExitWindowsEx FLAGS, 0 End Sub
' fonction qui délogue l'user (Force=true oblige le traitement) Public Sub LogOffNT(Force As Boolean) Dim ret As Long Dim FLAGS As Long FLAGS = EWX_LOGOFF If Force Then FLAGS = FLAGS + EWX_FORCE ExitWindowsEx FLAGS, 0 End Sub
| Voilà ! Pour l'utilisation, tu fait un truc du genre : Private Sub Form_Load() timer1.enabled=false end sub Private sub Eteindre_PC() delai = val(text1.text) timer1.enabled=true timer1.interval=delai ' donc au maximum le temps géré par un timer ! Attention ! 'si tu veux éteindre à une HEURE précise, utilise Date$ et Time$ PowerDownNT(true) end sub end sub Voilà !! @+
|
|
lundi 19 décembre 2005 à 12:03:05 |
Re : extinction PC XP

i386
|
Merci Viloent_ken,
ouhlala, ca va etre tendu de comprendre tout ca pour un débutant comme moi, je pensais qu'en deux lignes, c'était jouable, mais non ...
Va falloir que j'apprenne ce qu'est une API win32 ... c'est pas gagné
merci encore !!!
|
|
lundi 19 décembre 2005 à 12:13:35 |
Re : extinction PC XP

violent_ken
|
Violent Ken
Tu n'est pas obligé de tout garder dans le programme. Si tu ne veux qu'ETEINDRE sous WINDOWS XP, tu peux simplement utiliser cette partie :
Private Const EWX_SHUTDOWN = 1 Private Const EWX_FORCE = 4 Private Const EWX_POWERDOWN = 8 Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
' fonction qui éteint le PC (Force=true oblige le traitement) Public Sub ShutDownNT(Force As Boolean) Dim ret As Long Dim FLAGS As Long FLAGS = EWX_SHUTDOWN If Force Then FLAGS = FLAGS + EWX_FORCE ExitWindowsEx FLAGS, 0 End Sub
' fonction qui éteint totalement la tour (Force=true oblige le traitement) Public Sub PowerDownNT(Force As Boolean) Dim ret As Long Dim FLAGS As Long FLAGS = EWX_POWERDOWN If Force Then FLAGS = FLAGS + EWX_FORCE ExitWindowsEx FLAGS, 0 End Sub
Voilà. Le programme gérais en fait aussi le reboot et le deloguage, mais aussi supportait différent OS (XP,NT,2000...) Donc le voilà épuré pour éteindre windows XP. Je n'ai pas vraiment retesté, mais çà devrais marcher sans soucis ! Tu peux utiliser aussi bien PowerDownNT que ShutDownNT, la différence est que sur certain PC, seul PowerDownNT éteind totalement le PC. Voilà !! @+
|
|
lundi 19 décembre 2005 à 14:30:41 |
Re : extinction PC XP

iloveprog
|
Je ne suis pas sur que ca marche mais remplace ton code par :
Private sub command_click()
delai = val(text1.text)
shell ("shutdown -s -f -t " & delai)
end sub
delai ne doit pas etre entre guillemet ; c'est une valeur pas une phrase
|
|
lundi 19 décembre 2005 à 14:30:58 |
Re : extinction PC XP

iloveprog
|
Je ne suis pas sur que ca marche mais remplace ton code par :
Private sub command_click()
delai = val(text1.text)
shell ("shutdown -s -f -t " & delai)
end sub
delai ne doit pas etre entre guillemet ; c'est une valeur pas une phrase
|
|
lundi 19 décembre 2005 à 18:08:56 |
Re : extinction PC XP

i386
|
Réponse acceptée !
ca y est j'ai trouvé !!!!!!!!!!!!!!!
c'est tout bête.
Voici la source en une ligne qui marche chez moi (windows XP pro et home):
Private Sub Command1_Click()
Shell ("shutdown -s -f -t " & Val(Text1.Text))
End
End Sub
Juste besoin d'une textbox et d'un bouton !!! et deux lignes de code !!!!
J'espère qu'il pourra servir à d'autres (j'avais pas trouver de code ou des bien plus compliqué pour cette action toute bête !!!).
Merci à iloveprog pour les guillemets et à violent_ken.
Salut
ps : ah enfin, une journée pour un petit truc de rien du tout mais qui a payé, je vais pouvoir mater des films sans avoir besoin de me relever pour éteindre le PC ou a tapé une ligne de code sous l'invite de commande.
|
|
jeudi 22 décembre 2005 à 14:32:07 |
Re : extinction PC XP

mateo1975
|
comme violantken le shell shutdown ne marche pas a tous les coups chez moi
par contre l'utilisation de l'api ExitWindowsEx c'est du 100 %
|
|
Cette discussion est classée dans : pc, xp, délai, extinction, delai
Répondre à ce message
Sujets en rapport avec ce message
Eteindre son PC sous XP avec VB ?????????? [ par sane79 ]
je voudrais savoir comment on eteint sons PC avec VBg essayé plein de truc comme ExitWindowsEx , shutdown mais jamais ca va juska l'arret complet du P
Comment détecter la demande d'extinction du PC [ par Spylover ]
Bonjour,Je souhaite faire un prog qui se lance des la demande d'extinction d'un pc. Win95 -98 NT 2000 XPMerci de me signaler toutes les possibilités.
Comment détecter la demande d'extinction du PC [ par Spylover ]
Bonjour,Je souhaite faire un prog qui se lance des la demande d'extinction d'un pc. Win95 -98 NT 2000 XPMerci de me signaler toutes les possibilités.
Comment détecter la demande d'extinction du PC [ par Spylover ]
Bonjour,Je souhaite faire un prog qui se lance des la demande d'extinction d'un pc. Win95 -98 NT 2000 XPMerci de me signaler toutes les possibilités.
Conseils pour acheter un PC [ par Cpapy ]
Bonjour,Je souhaiterais changer mon ordinateur. Comme je n'y connais pas grand chose, je souhaiterais avoir l'avis d'un technicien.Je l'utilise en tra
Pb d'installation [ par Ricou13 ]
Salut, J'ai un big problème : J'ai développé un prog avec VB6 français sous NT4 (SP6). Parmis les composants VB, il y a Comdlg32.ocx (CommonDialog) et
Arret du pc sous xp [ par DarkMickael ]
bonjour je voudrai la commande pour arreter le pc sous xp car j'ai une commande mais elle marche pas sur xp mais sous 98,Me elle marche don cpouvez vo
eteindre pc sous xp [ par babouche ]
bijourvoila la commandeshell "shutdown -s -t 00" n'éteind pas toujours (ou ptet jamais meme) les pc sous winXP, il les laisse a l'ecran "it's now safe
IP fixe ( adsl ) internet [ par Alain Proviste ]
Comment faire un prog de communcation entre deux pc, l'un sous Xp avec un adsl et l'autre sous 98 avec un 56k.Que faut-il prendre en compte.C'est deux
Pb de couleur Xp vs 98 [ par globe08 ]
J'ai fait un prog sur mon pc sous XP. Quand je l'installe sur un pc sous W98 les couleurs ne sont pas les memes.Le &H8000000D donc gris de XP est du b
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
ACCES ODBCACCES ODBC par yannickcottin
Cliquez pour lire la suite par yannickcottin
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|