Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : une shell en C [ Divers / Débutant(e) ] (moutonjr)

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é 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

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,11 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.