5/5 (8 avis)
Vue 9 488 fois - Téléchargée 742 fois
//pour changer la résolution de l'écran int chgScreenResolution() { DEVMODE dvMode; //variable de stockage et d'échange des infos d'affichage ZeroMemory(&dvMode, sizeof(dvMode)); //remplit la case mémoire par des 0 dvMode.dmSize = sizeof(dvMode); //change un paramètre pour le bon fonctionnement de la fonction EnumDisplaySettings(0, ENUM_CURRENT_SETTINGS, &dvMode); //récupère les valeurs actuelles //unsigned long lProfondeurBit = 32; unsigned long lWidth; unsigned long lHeight; cout << "\n\nAFFICHAGE ECRAN" << endl; cout << "L'affichage est actuellement defini a : " << dvMode.dmPelsWidth << " * " << dvMode.dmPelsHeight << " pixels" << endl; cout << "Les couleurs sont codees en " << dvMode.dmBitsPerPel << " bits" << endl; int iChoix; cout << "Voulez-vous changer de parametres d'affichage (o/n) ?" << endl; if (askYesNo()) { char cListe[255]; char cKeys[255]; int iReturn = 1; DEVMODE dvListe[255]; int iNo = 1; int iIndex = 1; int i = 1; bool bExisteDeja = false; cout << "Voici differents modes envisageables :" << endl; while (iReturn != 0) { iReturn = EnumDisplaySettings(0, iNo, &dvListe[iIndex]); //on fait une sélection : //que les 16 et 32 bits //de 640 à 1600 pixels if (iReturn != 0) { if (dvListe[iIndex].dmBitsPerPel > 8) { if ((dvListe[iIndex].dmPelsWidth == 640) | (dvListe[iIndex].dmPelsWidth == 800) | (dvListe[iIndex].dmPelsWidth == 1024)| (dvListe[iIndex].dmPelsWidth == 1280)| (dvListe[iIndex].dmPelsWidth == 1600)) { //scanne dans la liste pour voir si le mode existe déjà for (i=1; i<iIndex; i++) { //cout << "Scanning : " << i << ". " << dvListe[i].dmPelsWidth << " * " << dvListe[i].dmPelsHeight << " / " << dvListe[i].dmBitsPerPel << " bits" << endl; if ((dvListe[iIndex].dmPelsWidth == dvListe[i].dmPelsWidth) & (dvListe[iIndex].dmPelsHeight == dvListe[i].dmPelsHeight) & (dvListe[iIndex].dmBitsPerPel == dvListe[i].dmBitsPerPel)) { bExisteDeja = true; break; } } if (!bExisteDeja) { cout << iIndex << ". " << dvListe[iIndex].dmPelsWidth << " * " << dvListe[iIndex].dmPelsHeight << " / " << dvListe[iIndex].dmBitsPerPel << " bits" << endl; iIndex++; } bExisteDeja = false; } } } iNo++; } cout << "0. Pas de modification de resolution" << endl; cout << "Votre choix : "; cin >> iChoix; //cChoix = askForKey("123450", 6); if (iChoix == 0) { cout << "Aucune modification ne va etre appliquee..." << endl; } else { if (iChoix <= iIndex) { if (MessageBox(GetDesktopWindow(), "Etes-vous sûr de vouloir changer de résolution ?", "Attention !", (MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON2|MB_TOPMOST)) == IDYES) { dvMode = dvListe[iChoix]; cout << "Largeur : " << dvMode.dmPelsWidth << "\nHauteur : " << dvMode.dmPelsHeight << "\nCouleur : " << dvMode.dmBitsPerPel << " bits" << endl; cout << "Application des modifications..." << endl; ChangeDisplaySettings(&dvMode, 0); } } else { cout << "Cette valeur est trop grande, aucun mode n'y est associe." << endl; } } } return 0; } /* Forcer l'arrêt de l'ordinateur */ /* Merci Nix pour le code VB ! */ int forceShutdown() { /* Interactions */ int iShutType = 0; //type d'arret = la valeur correspondant à l'action effectuée //int iRep; //retour de la fonction API bool bTrue = true; bool bFalse = false; /* Parametres */ int iDelay = 30; bool bForceShutdown = false; bool bReboot = false; char sMessage[] = "L'arret a ete initie par HelkAPIUse."; cout << "\n\nARRET DE WINDOWS (1)" << endl; cout << "Voulez-vous forcer l'arret de windows ? (o/n)" << endl; if (askYesNo()) { /* Il y a un problème dans l'utilisation de InitiateSystemShutdown, qui renvoie 0 (=false) alors on ajuste les privilèges du processus :
12 oct. 2005 à 17:46
Ben tu peu mettre vite fait celle que tu avait déjà utilisée lol je supose que celles-ci ne sont pas les seules que tu connaisait :D yerk yerk
++All
11 oct. 2005 à 19:04
a++
6 oct. 2005 à 20:06
Je trouve cette source très intéressente, elle ma bien aidée. Tu devrai continuer de mettre des APIs dedans , perso ca me serai bien utile.
Bonne continuation.
++All
20 déc. 2003 à 19:13
je sais
je comptais le faire...
mais le but pour l'instant n'était que de montrer qqes aperçus des utilisations de l'api windows ttes betes
20 déc. 2003 à 09:16
"EnumDisplaySettings" plutôt que de mettre "1.640x480".... parce que 1600x1200, je pense pas que tous les écrans le supporte .
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.