begin process at 2012 02 10 11:55:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

une shell en C


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

une shell en C

samedi 19 juillet 2008 à 14:08:58 | une shell en C

moutonjr

Bonjour à tous, voici un e question en C de débutants, je voulais la poser sur le chat mais  je n'arrivais pas à me connecter à l'irc...
J'aimerais en fait faire une application que j'implémenterais dans l'émulateur DOS de windows XP ; utilisant carrément shutdown, elle calculerait l'arrêt de mon PC a minuit pile par exemple quand je l'appelle à l'invite de commandes.
donc ça serait simple : je compile deux lignes de code, la première qui me calcule la différence d'heure (d'ailleurs pourriez-vous m'aider sur ce sujet je n'ai jamais manipulé des heures :s) et la seconde la shell "shutdown -s -t <mon temps>"
Pourriez-vous m'indiquer comment faire une shell? merci d'avance!

Comme quoi, vraiment rien n'est impossible...
samedi 19 juillet 2008 à 15:29:43 | Re : une shell en C

Neo_Fr

Membre Club
Réponse acceptée !
Salut,
Tant qua faire un truc en C autant tout faire de A a Z..

Voici un code qui permettrait de faire ce que tu souhaites:

int __stdcall ShutDown(void)
{
HANDLE hToken;
TOKEN_PRIVILEGES tPrivs;
if(!OpenProcessToken(GetCurrentProcess(), (TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY), &hToken)) return 1;
LookupPrivilegeValue(0, SE_SHUTDOWN_NAME, &tPrivs.Privileges[0].Luid);
tPrivs.PrivilegeCount = 1;
tPrivs.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tPrivs, 0, (PTOKEN_PRIVILEGES)0, 0);
if(GetLastError() != ERROR_SUCCESS) return 1;
if(!ExitWindowsEx((EWX_SHUTDOWN|EWX_FORCE), (SHTDN_REASON_MAJOR_OPERATINGSYSTEM|SHTDN_REASON_MINOR_UPGRADE|SHTDN_REASON_FLAG_PLANNED))) return 1;
return 0;
}

#pragma comment(linker, "/entry:_WinMain")
void _WinMain(void)
{
    SYSTEMTIME stLocal;
    while(1)
    {
        GetLocalTime(&stLocal);
        if( (!stLocal.wHour)&&(!stLocal.wMinute) )
        {
            ShutDown();
            break;
        }
        Sleep(1000);
    }
ExitProcess(0);
}

Neo_Fr
samedi 19 juillet 2008 à 16:38:22 | Re : une shell en C

moutonjr

Alors là je ne croyais vraiment pas que c'était aussi compliqué.. je ne serais jamais arrivé à faire un truc pareil!! il faut que je relise tout ça et que je me documente.. beaucoup ^^
En tout cas merci pour le code je vais tester ça tout de suite et essayer de le comprendre!

Comme quoi, vraiment rien n'est impossible...


Cette discussion est classée dans : shell, shutdown


Répondre à ce message

Sujets en rapport avec ce message

attendre que le shell soit fini C++ [ par McK_N ] Salut,je veux appeler la fonction Shell et je veux que mon programe arrête jusqu'à ce que le shell soit terminé.Comment puis-je le faire avec la fonct shell Windows [ par timek ] Bonjour,j'ai developpe un programme et je souhaiterai que celui-ci soit lancé à la place de l'interface de Windows.C est techniquement possible puisqu fopen() et shell_notifyicon() [ par CyberP ] 1) J'ai créé un programme qui lit dans un fichier qui est normalement dans le meme répertoire que le programme. Mais lorsque je le lance grâce à un ra création d'un shell [ par irrisson ] Je dois créer un shell sous linux en langage c. - gestion des redirections simple ou double, des indirections simple ou double et des pipes(ex: /tmp/ cacher une fenetre [ par dorian2031 ] Voila g une source en c.cette derniere s'execute sous le Shell de Windowsj aimerais avoir(car bo cherche mais comprend rien en c++)un code qui permet Shell Unix / C++ [ par nicolas66 ] Bonsoir 'sieur dames :)jvoulé savoir si qq1 savé comment faire pour exécuter une commande shell unix à partir d'un prog en c++ (c vachement important Shell Unix / C++ [ par nicolas66 ] qq1 saurait-il comment faire pour mettre le contenu d'une commande shell dans un tableau de string histoire de le manipuler correctement ? Neo [<a hre RECHERCHE PRO DU COM [ par BruNews ] Salut,on recherche qqn qui saurait faire un plugin IE, une barre d'outils genre GoogleBar, cela pour Codes-Sources. Faut donc s'y connaitre en impleme shell dos [ par abdoulax ] helloSalut les gas , je ve reproduir un shell genre cmd ms je c poa commen m y prendre ... si qlq1 pe me mettre sur la voi !!! Shell -> C [ par arodj ] Bonjour à tous !!S'il vous plait, s que qqun pourrait me dire comment passer d'un langage shell en langage C !En d'autres termes, j'ai fait un script


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales