begin process at 2012 05 27 20:59:12
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > P'TIT PROG POUR QUITTER WINDOWS ENTIÈREMENT EN API WIN32

P'TIT PROG POUR QUITTER WINDOWS ENTIÈREMENT EN API WIN32


 Information sur la source

Note :
1 / 10 - par 1 personne
1,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Niveau :Débutant Date de création :04/12/2003 Vu / téléchargé :3 874 / 293

Auteur : kptn

Ecrire un message privé
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

Ce prog est juste pour montrer la création d'une appli en API Win32. Et comment quitter windows...
Le code n'est plus tout jeune, et il reste des bouts de code en commentaires que je n'est pas viré
(j'ai eu la flemme), mais bon si j'ai le ocurage je le remettrais au propre...




 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture AJOUTER UN SKIN À UNE APPLI - API WIN32
Source avec Zip Source avec une capture MINI EXPLORATEUR : COMMENT NAVIGUER DANS LES RÉPERTOIRES AVE...
Source avec Zip Source avec une capture METTRE DE LA COULEUR DANS LES BOUTONS
Source avec Zip Source avec une capture RENDRE SON APPLICATION SKINNABLE
Source avec Zip ANTIKILL : PROTÉGEZ LES PROCESSUS DES "KILL" VENANT DES AUTR...

 Sources de la même categorie

Source avec Zip WIN32 TLS LENT par dguilmain
Source avec Zip VIDER ELEMENTS DE CORBEILLE WINDOWS7 (WIN64) par BruNews
Source avec Zip Source avec une capture FIND TEXT (WIN64) par BruNews
Source avec Zip DELETE DIRECTORY (WIN64) par BruNews
Source avec Zip ENUM DIRECTORY (WIN64) par BruNews

Commentaires et avis

Commentaire de garslouche le 04/12/2003 15:44:20

J'ai rapidement parcouru ton code mais j'ai l'impression que tu ne geres pas les privileges. Du coup ça ne tournera ni sur Win2000 ni sur WinXP

Commentaire de kptn le 05/12/2003 09:48:05

tu as tout à fait raison. J'avais créé ce programme, initialement, pour windows 98. Et comme je n'ai pas pris le temps de le mettre à jour, il est inutilisable en l'état sous win2k et +.
Qu'a cela ne tienne, en attendant de remettre à jour le code voici ce qu'il faut y mettre pour qu'il tienne compte des privilèges :

void SetPrivilege(void)
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;

// Get a token for this process.
if (!OpenProcessToken(GetCurrentProcess(),
        TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
    ReportError("OpenProcessToken");

// Get the LUID for the shutdown privilege.
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,
        &tkp.Privileges[0].Luid);

tkp.PrivilegeCount = 1;  // one privilege to set
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

// Get the shutdown privilege for this process.
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
        (PTOKEN_PRIVILEGES)NULL, 0);
// Cannot test the return value of AdjustTokenPrivileges.
ReportError("AdjustTokenPrivileges");
}

et à la place de l'ExitWindowsEx existant, il faut le remplacer par :
ExitWindowsEx(EWX_POWEROFF | EWX_FORCEIFHUNG, 0);

enfin la méthode ReportError est celle qui est communément employée :
void ReportError(char *szTitle)
{
int nerr = GetLastError();
if (nerr == 0) return;
LPVOID lpMsgBuf;
FormatMessage(
    FORMAT_MESSAGE_ALLOCATE_BUFFER |
    FORMAT_MESSAGE_FROM_SYSTEM |
    FORMAT_MESSAGE_IGNORE_INSERTS,
    NULL,
    nerr,
    MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
    (LPTSTR) &lpMsgBuf,
    0,
    NULL
);

MessageBox(NULL, (LPCTSTR)lpMsgBuf, szTitle, MB_OK | MB_ICONINFORMATION );
// Free the buffer.
LocalFree( lpMsgBuf );
}

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 11,903 sec (4)

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