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 !

LISTER LES ECRANS ET LEURS RÉSOLUTIONS


Information sur la source

Catégorie :API Niveau : Initié Date de création : 26/02/2004 Date de mise à jour : 26/02/2004 14:20:15 Vu / téléchargé: 3 106 / 329

Note :
Aucune note

Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
j'avais besoin de savoir si mon deuxième écran était branché afin d'y faire aparaitre une form
donc j'ai pondu (non sans mal) ce petit bout de code

J'aimerai changer la resolution des ecrans, mais je seche un peu la...
Le permier ne pose aucun probleme mais je ne sais pas comment acceder au autres ecrans (cf TYPE DEVMODE).........Dc avis aux amateurs.


 

Conclusion

MAJ prévue si j'arrive a faire les changements de résolutions...

Uniquement testé avec 1 seule carte Graphique (GeForce4-Ti4200)
si qq'un peut me dire si le code fonctionne avec plusieurs cartes graphiques.

 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de BobTSMSI le 26/02/2004 14:51:33

Salut BasicInstinct!

Pour changer la résolution de l'écran 0, je suppose que tu utilises l'API "ChangeDisplaySettings"... Ben pour changer la résolution sur n'importe quel écran, utilise "ChangeDisplaySettingsEx", ça marche exactement pareil que la première fonction mais en premier paramètre, on rentre le numéro de l'écran. Voilà la déclaration :

Public Const CDS_TEST = &H4
Public Const CDS_UPDATEREGISTRY = &H1
Public Declare Function ChangeDisplaySettingsEx Lib "user32" Alias "ChangeDisplaySettingsExA" (lpszDeviceName As Any, lpDevMode As Any, ByVal hWnd As Long, ByVal dwFlags As Long, lParam As Any) As Long

Et l'appel :

ChangeDisplaySettingsEx(ByVal NumDevice&, DevMode, ByVal 0&, CDS_TEST, ByVal 0&)

(donc ByVal 0& pour le hWnd et ByVal 0& pour lparam. et pour dwFlags CDS_TEST pour tester la résolution, CDS_UPDATEREGISTRY pour mettre à jour le registre, sinon ByVal 0&)

Si tu choisis CDS_UPDATEREGISTRY, je crois (à vérifier) qu'il faut ajouter ça:

Déclaration:

Public Const HWND_BROADCAST = &HFFFF
Public Const HWND_DESKTOP = 0
Public Const WM_DEVMODECHANGE = &H1B
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Code juste après l'appel à ChangeDisplaySettingsEx:

SendMessage HWND_BROADCAST, WM_DEVMODECHANGE, 0, 0
SendMessage HWND_DESKTOP, WM_DEVMODECHANGE, 0, 0


Normalement ça marche, si j'ai rien oublié ;) ...

Sinon pour l'histoire de savoir si ça marche sur toutes les cartes graphiques, normalement oui puisque c'est une fonction Win32, la même qui est utilisée quand tu change la résolution par le panneau de configuration. Donc pas d'incompatibilité avec telle ou telle carte graphique.

A plus!

signaler à un administrateur
Commentaire de BasicInstinct le 26/02/2004 14:57:00

c'est bien ce que j'ai essayé de faire, mais ca me fait planter VB. Dc pour le moment j'ai pas plus epilogué que ca et je m'y remettrai quand j'aurai le courage !! (certainement cette nuit)

Merci



signaler à un administrateur
Commentaire de BobTSMSI le 26/02/2004 15:02:06

Chez moi ça marche nickel cette méthode...

Bon courage!

Autre chose, si tu sais comment faire afficher une form dans un autre écran que le 0 , ça m'intéresse. C'est pour faire du multi-écran avec mon écran de veille.

Bye!

signaler à un administrateur
Commentaire de azerty25 le 26/02/2004 16:54:42

Héhé, le ce BobTSMSI ;)
J'ai également déja pensé à faire du multi écran, j'ai réfléchi à la technique mais pas passé à l'acte, plus besoin : les fenetres de windows, du moins les positions sont numérotées en je ne sais plus quelle unité (twips ou pixels). Si tu met dans le fom load d'une appli me.left=0, elle sera sur la bordure droite de l'écran 0. Apres, si tu as 2 écrans, le primaire est à droite et le 2eme a sa gauche, toujours pareil pour l'histoire du left = 0, mais si tu met par exemple me.left = -500, alors la elle fenetre sera sur l'autre écran ;) Apres a toi de trouver si l'éran 2 est a gauche, à droite, quelles dimensions (avec le code ici présent peut etre ? ;)) D'ailleur, il est utile est totalement fonctionnel ton code BasicInstinct, bravo;)

signaler à un administrateur
Commentaire de BasicInstinct le 26/02/2004 17:36:51

y'a moyen de savoir si la form est dans tel ou tel ecran,  mais je l'ai pas mis pour ne pas alourdir le code. Je le rajouterai si vous voulez.

Moi je m'en sert pour un serveur de Log qui est plein ecran sur l'ecran2 ou en systray si l'ecran est inactif.

Merci pour les commentaires :)

signaler à un administrateur
Commentaire de azerty25 le 26/02/2004 17:57:53

Ok, n'hésite pas a faire tourner ou a poster une source sourtout ;)
Tu fait sa avec GetWindowsPos (ou un truc du genre) non ?

signaler à un administrateur
Commentaire de BasicInstinct le 12/03/2004 11:57:06

j'ai réussi a faire ce que je voulais avec mon multi-ecran....
MAJ tres prochainement :)))

@++

signaler à un administrateur
Commentaire de BobTSMSI le 12/03/2004 12:14:54

WAOUH!!! HEP HEP!! ça m'intéresse ça!
Beaucoup beaucoup même!
Fait tourner!
Je suis cette histoire avec intérêt!

Merci BasicInstinct

PS: j'espère que j'pourrai adapter ça avec mes surfaces DirectDraw!!

Bye les gens :)

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode



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,328 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é.