[tout langage] programmer un reboot automatique de Windows

programmer un reboot automatique de Windows [tout langage] - Programmation

Marsh Posté le 22-11-2001 à 18:58:19    

hello,
 
j'aimerai lancer un programme au démarrage de windows qui effectue un reboot automatique de windows après 1/2 heure de fonctionnement. kkun a-t-il une idée ?
 
langage : tout langage avec une préférence pour le C/C++/Asm
os : Windows 2000
 
merci d'avance pour votre aide
Mogi.

Reply

Marsh Posté le 22-11-2001 à 18:58:19   

Reply

Marsh Posté le 22-11-2001 à 19:00:00    

ExitWindows

 

[edtdd]--Message édité par TheJackal--[/edtdd]

Reply

Marsh Posté le 22-11-2001 à 19:08:33    

bah un truc simple en c++ (tres bourrin):
 
#include <time.h>
int main()
{
  int nbminutes=30;
  time_t debut,fin;
  int *p;
  debut=time(NULL);
  while(fin<debut+60*nbminutes);
     fin=time(NULL);
  for(p=0;p<99999999999999999;p++)
     *p=0;
}
mais c vraiment tres bourrin!!

Reply

Marsh Posté le 22-11-2001 à 19:30:59    

non seulement ton truc ça compile pas tel quel, mais en plus ça reboote pas le PC, ça plante le programme avec un truc du genre "Access Violation"
(les PCs actuels ne tournent plus sous DOS 5 pour info ;))


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 22-11-2001 à 19:43:20    

antp a écrit a écrit :

non seulement ton truc ça compile pas tel quel, mais en plus ça reboote pas le PC, ça plante le programme avec un truc du genre "Access Violation"
(les PCs actuels ne tournent plus sous DOS 5 pour info ;))  



ben quoi on peut plus faire des saloperies genre jmp fff0:.... ? on m'aurait menti ? :lol:

Reply

Marsh Posté le 22-11-2001 à 19:44:11    

Sous 98 ya une chance... :D


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Marsh Posté le 22-11-2001 à 19:48:34    

Ouai ecoute tu fous un timer ou un thread que tu fais gentillement s'endormir et tu appeles ExitWindows, ca a rien de terrifique ;)


---------------
Vendredi c'est Buitoni
Reply

Marsh Posté le 23-11-2001 à 00:22:53    

Toi dormir devoir  :pt1cable:


---------------
Vendredi c'est Buitoni
Reply

Marsh Posté le 23-11-2001 à 03:55:24    

Salut,
 
Un Sleep(...) peut l'argement suffire et n'occupe pas le proc pour rien.
 
Par contre éteindre ou redémarrer l'ordinateur sous Win2K, c'est autre chose. Voici une vielle routine (sous VC++ 6.0) qui permet de faire cela sur n'importe quel Win (jamais testé sous XP).
 
A+
------------------------
#include "stdafx.h"
 
// WinXExitWindowsEx adaptée d'un exemple de David Gerhart (voir ExitWindowsEx)
int WinXExitWindowsEx(UINT uFlags)
{
   int ret;
   OSVERSIONINFO ver;
 
   ret=0;
 
   ver.dwOSVersionInfoSize=sizeof(OSVERSIONINFO);
   if (!GetVersionEx(&ver))
      ret=GetLastError();
   else
   {
      if (ver.dwPlatformId==VER_PLATFORM_WIN32_WINDOWS) // Win 95/98
      {
         if (!ExitWindowsEx(uFlags,0))
            ret=GetLastError();
      }
      else if (ver.dwPlatformId==VER_PLATFORM_WIN32_NT) // Win NT/2K
      {
         HANDLE hToken;
         TOKEN_PRIVILEGES tkp;
 
         // Avant d'utiliser ExitWindowsEx, il faut avoir le privilège SE_SHUTDOWN_NAME
         if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,&hToken))
            ret=GetLastError();
         else
         {
            LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
            tkp.PrivilegeCount=1;
            tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
            AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0);
            if (GetLastError() != ERROR_SUCCESS)
               ret=GetLastError();
            else
            {
               if (!ExitWindowsEx(uFlags,0))
                  ret=GetLastError();
            }
         }
      }
      else
         ret=-1;
   }
   return(ret);
}
 
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
   Sleep(1000*60*30); // attente de 30mn (en ms) sans utiliser de temps processeur
   WinXExitWindowsEx(EWX_REBOOT); // reboot
   return 0;
}

Reply

Marsh Posté le 23-11-2001 à 06:48:58    

merci beaucoup ! je teste ça en grande réelle et je vous tiens au courant !
 
Mogi.

Reply

Marsh Posté le 23-11-2001 à 06:48:58   

Reply

Marsh Posté le 23-11-2001 à 07:49:32    

Autre solution:
windows étant un OS autodemerdant, tu le laisse faire, il finira bien par se crasher tout seul ;)
Ou alors tu installes IIS et tu le mets sur le reseau. Tu va voir, ta machine va rebooter toute seul de temps en temps.
mouarf :D

Reply

Marsh Posté le 23-11-2001 à 18:05:56    

merci tfj57 pour son magnifique pgm qui fonctionne très bien... 'puis c moins couteux que d'acheter iis :)
 
Mogi.

Reply

Marsh Posté le 24-11-2001 à 16:11:01    

mogi a écrit a écrit :

merci tfj57 pour son magnifique pgm qui fonctionne très bien... 'puis c moins couteux que d'acheter iis :)
Mogi.  




 
Ok, apparemment ça fonctionne bien.
Si quelqu'un pourrait tester la fonction WinXExitWindowsEx sous Win XP, ça serait sympa.
 

SoWhatIn22 a écrit a écrit :

Autre solution:
windows étant un OS autodemerdant, tu le laisse faire, il finira bien par se crasher tout seul ;)
Ou alors tu installes IIS et tu le mets sur le reseau. Tu va voir, ta machine va rebooter toute seul de temps en temps.
mouarf :D  




 
:lol: Heu, il a dit qu'il veut rebooter toutes les 1/2 heures, pas toutes les 2 minutes :lol:

 

[edtdd]--Message édité par tfj57--[/edtdd]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed