2011-07-26 3 views
1

Je n'arrive pas à trouver un moyen de forcer la résolution d'affichage/la synchronisation que je veux dans mon programme C#. Je cours Windows 7 avec une carte graphique GeForce 210. Ma méthode actuelle pour atteindre ces résolutions personnalisées consiste à utiliser l'interface graphique du pilote pour ajouter manuellement les résolutions personnalisées, puis utiliser les appels Windows pour modifier ces résolutions, mais j'ai besoin d'un moyen d'ajouter de nouvelles résolutions personnalisées en temps réel. J'ai regardé dans le NVAPI mais je n'ai pas pu trouver un moyen de faire cela. J'ai également regardé dans l'outil de ligne de commande pour le conducteur graphique mais je n'ai pas pu le faire fonctionner. Mon dernier recours est de réécrire les valeurs dans le registre, mais j'aimerais vraiment éviter cela. Je suis prêt à utiliser un langage de programmation différent ou un outil tiers tant que je peux l'appeler à partir de la ligne de commande via mon programme. Est-ce que quelqu'un peut-il me montrer la bonne direction?Comment est-ce que je peux forcer n'importe quelle résolution d'affichage/synchronisation que je veux?

Merci d'avance.

Mise à jour (8/16/2011): Je travaille sur ce problème avec NVIDIA et ils me fournir une NVAPI avancée qui me permettra de recréer la fonctionnalité de leur pilote. Ils ont également confirmé que la version de base de NVAPI qu'ils fournissent ne le fera pas.

+0

Avez-vous essayé http://developer.nvidia.com/? La dernière fois que j'ai vérifié, ils étaient plutôt bien là-bas. –

+0

J'ai regardé à travers le NVIDI et Nvidia graphiques sdk 11 et n'a pas pu trouver quelque chose. J'ai postulé pour leur programme de développement enregistré et posté cette question sur leurs forums, mais n'ont pas eu de réponse à deux semaines et demie. Ils peuvent évidemment le faire puisque leur pilote le fait, mais je ne suis pas sûr de savoir comment ils le font ou s'ils rendent cette fonctionnalité de la carte graphique disponible pour les développeurs externes. – mxgg250

+0

mxgg250, pouvez-vous donner des indications sur un moyen rapide d'entrer en contact avec NVidia pour obtenir la version NDA? J'ai cherché en ligne et il semble que leur site developer.nvidia.com vous met dans une boucle et ne peut essentiellement pas demander la version NDA. Je pense que cela profiterait à quelques personnes si vous pouviez partager votre expérience en faisant travailler Nvidia avec vous pour la saveur NDA. Merci. – ScottN

Répondre

1

J'ai été capable de résoudre ce problème en utilisant la version NDA du NVAPI. Ce n'était pas trivial mais tous les outils sont là.

1

Vous pouvez essayer d'utiliser ChangeDisplaySettings

Je ne suis pas sûr si elle aura toutes les options fournies par le panneau de nvidia, mais certainement les bases comme la résolution, le taux de rafraîchissement, l'orientation de l'écran, etc. Je l'ai utilisé moi-même dans le passé pour changer dynamiquement l'orientation de l'écran (tourner en paysage/portrait) sur un clic d'un bouton.

+0

C'est ce que j'utilise actuellement pour basculer entre les résolutions prises en charge. Je crois qu'il lit le registre pour voir ce qui est supporté et ne passera que si la résolution est trouvée. Si je ne parviens pas à trouver un autre moyen de le faire, je pourrai modifier les valeurs du registre, puis utiliser ChangeDisplaySettings. – mxgg250

+0

Ne pouvez-vous pas créer une structure DevMode et définir • dmPelsWidth • dmPelsHeight à ce que vous voulez? – Egor

+0

Cela vous permettra seulement de changer pour les modes d'affichage supportés. J'essaie d'ignorer si le paramètre est supporté ou non et force le commutateur. – mxgg250

Questions connexes