Inverser l'ecran

Le
Mamelook
Bonjour, Je voudrai faire une blague a un ami en lui envoyant un programme
qui inverse l'image de l'ecran, de fasson temporaire bien sur, le probleme
c'est que je voit pas du tout comment faire Quelqun aurai une idée ?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Christian ASTOR
Le #9747051
Mamelook wrote:
Bonjour, Je voudrai faire une blague a un ami en lui envoyant un
programme qui inverse l'image de l'ecran, de fasson temporaire bien
sur, le probleme c'est que je voit pas du tout comment faire ...
Quelqun aurai une idée ?



DM_DISPLAYORIENTATION si c'est supporté (Mobile par ex)
Sinon, temporairement, StretchBlt() vers fenêtre plein-écran
Mamelook
Le #9747041
J'ai esseyer sa :

DEVMODE devMode = {0};
devMode.dmSize = sizeof(DEVMODE);
//devMode.dmPelsWidth = 1024;
//devMode.dmPelsHeight = 768;
devMode.dmFields = 0x00800000; //DM_DISPLAYORIENTATION
devMode.dmOrientation = 90;

if(ChangeDisplaySettingsEx(NULL, &devMode, NULL, 0,
(LPVOID)180)!=DISP_CHANGE_SUCCESSFUL){
MessageBox(NULL, "pasok", "", MB_OK);
}

A l'execution, il n'y a pas de messagebox (donc la fonction na pas
retourner d'erreur), mais l'ecran na pas bouger non plus.
http://msdn2.microsoft.com/en-us/library/ms908108.aspx

Help me please !!!

Le Sun, 03 Feb 2008 16:14:34 +0100, Christian ASTOR

DM_DISPLAYORIENTATION


Christian ASTOR
Le #9747031
Mamelook wrote:

J'ai esseyer sa :

DEVMODE devMode = {0};
devMode.dmSize = sizeof(DEVMODE);
//devMode.dmPelsWidth = 1024;
//devMode.dmPelsHeight = 768;
devMode.dmFields = 0x00800000; //DM_DISPLAYORIENTATION
devMode.dmOrientation = 90;

if(ChangeDisplaySettingsEx(NULL, &devMode, NULL, 0,
(LPVOID)180)!=DISP_CHANGE_SUCCESSFUL){
MessageBox(NULL, "pasok", "", MB_OK);
}

A l'execution, il n'y a pas de messagebox (donc la fonction na pas
retourner d'erreur), mais l'ecran na pas bouger non plus.



Il y a un peu n'importe quoi dans les paramètres.
DM_DISPLAYORIENTATION, c'est 0x00000080
dmOrientation, c'est DMDO_90 entre autres.
180, ça ne correspond à rien.
Mamelook
Le #9747021
Oki, donc ce qui nous donne :

#define DMDO_DEFAULT 0
#define DMDO_90 1
#define DMDO_180 2
#define DMDO_270 3
#define DM_DISPLAYORIENTATION 0x00000080

DEVMODE devMode = {0};
devMode.dmSize = sizeof(DEVMODE);
devMode.dmFields = DM_DISPLAYORIENTATION;

devMode.dmOrientation = DMDO_180;
if(ChangeDisplaySettingsEx(NULL, &devMode, NULL, 0,
NULL)!=DISP_CHANGE_SUCCESSFUL)
MessageBox(NULL, "pasok", "", MB_OK);

Il ni a toujour pas d'erreur retourner ni de changement a l'écran...

Le Sun, 03 Feb 2008 17:10:54 +0100, Christian ASTOR

Mamelook wrote:

J'ai esseyer sa :
DEVMODE devMode = {0};
devMode.dmSize = sizeof(DEVMODE);
//devMode.dmPelsWidth = 1024;
//devMode.dmPelsHeight = 768;
devMode.dmFields = 0x00800000; //DM_DISPLAYORIENTATION
devMode.dmOrientation = 90;
if(ChangeDisplaySettingsEx(NULL, &devMode, NULL, 0,
(LPVOID)180)!=DISP_CHANGE_SUCCESSFUL){
MessageBox(NULL, "pasok", "", MB_OK);
}
A l'execution, il n'y a pas de messagebox (donc la fonction na pas
retourner d'erreur), mais l'ecran na pas bouger non plus.



Il y a un peu n'importe quoi dans les paramètres.
DM_DISPLAYORIENTATION, c'est 0x00000080
dmOrientation, c'est DMDO_90 entre autres.
180, ça ne correspond à rien.






--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/
Christian ASTOR
Le #9747011
Mamelook wrote:
Oki, donc ce qui nous donne :

#define DMDO_DEFAULT 0
#define DMDO_90 1
#define DMDO_180 2
#define DMDO_270 3
#define DM_DISPLAYORIENTATION 0x00000080

DEVMODE devMode = {0};
devMode.dmSize = sizeof(DEVMODE);
devMode.dmFields = DM_DISPLAYORIENTATION;

devMode.dmOrientation = DMDO_180;
if(ChangeDisplaySettingsEx(NULL, &devMode, NULL, 0,
NULL)!=DISP_CHANGE_SUCCESSFUL)
MessageBox(NULL, "pasok", "", MB_OK);

Il ni a toujour pas d'erreur retourner ni de changement a l'écran...



Les champs principaux doivent normalement être renseignés (width,
height, frequency, ...)
On récupère les valeurs pas défaut avec EnumDisplaySettingsEx()
On doit ensuite tester avec CDS_TEST, puis valider (éventuellement avec
d'autres flags CDS_*)
Mais même là, si le driver ne supporte pas, ça ne marchera peut-être pas
ou il faudra rebooter (DISP_CHANGE_RESTART)...
Mamelook
Le #9746961
Bon voila ske j'ai fait :

################################################
/*Define nécessaire*/
#define DMDO_DEFAULT 0
#define DMDO_90 1
#define DMDO_180 2
#define DMDO_270 3
#define DM_DISPLAYORIENTATION 0x00000080
#define CDS_VIDEOPARAMETERS 0x00000020
/*Creation des variables*/
DEVMODE devMode = {0};
devMode.dmSize = sizeof(DEVMODE);
/*Recuperation du DEVMODE actuel*/
EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &devMode);
/*On indique qu'on veut faire une orientation*/
devMode.dmFields = DM_DISPLAYORIENTATION;
devMode.dmOrientation = DMDO_180;
/*Test*/
if(ChangeDisplaySettingsEx(NULL, &devMode, NULL, CDS_TEST,
NULL)!=DISP_CHANGE_SUCCESSFUL){
MessageBox(NULL, "pasok1", "", MB_OK);
/*Validation*/
if(ChangeDisplaySettingsEx(NULL, &devMode, NULL, CDS_VIDEOPARAMETERS,
NULL)!=DISP_CHANGE_SUCCESSFUL){
MessageBox(NULL, "pasok2", "", MB_OK);
}
}
################################################

Toujours aucun resulta, cette fois c'est la messagebox pasok2 qui
s'affiche...


Le Sun, 03 Feb 2008 21:14:28 +0100, Christian ASTOR

CDS_TEST





--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/
Mamelook
Le #9746931
Dsl j'ai pas mit le bon code, le voici :

################################################
/*Define nécessaire*/
#define DMDO_DEFAULT 0
#define DMDO_90 1
#define DMDO_180 2
#define DMDO_270 3
#define DM_DISPLAYORIENTATION 0x00000080
#define CDS_VIDEOPARAMETERS 0x00000020
/*Creation des variables*/
DEVMODE devMode = {0};
devMode.dmSize = sizeof(DEVMODE);
/*Recuperation du DEVMODE actuel*/
EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &devMode);
/*On indique qu'on veut faire une orientation*/
devMode.dmFields = DM_DISPLAYORIENTATION;
devMode.dmOrientation = DMDO_180;
/*Test*/
if(ChangeDisplaySettingsEx(NULL, &devMode, NULL, CDS_TEST,
NULL)!=DISP_CHANGE_SUCCESSFUL){
MessageBox(NULL, "pasok1", "", MB_OK);
}else{
/*Validation*/
if(ChangeDisplaySettingsEx(NULL, &devMode, NULL, CDS_VIDEOPARAMETERS,
NULL)!=DISP_CHANGE_SUCCESSFUL){
MessageBox(NULL, "pasok2", "", MB_OK);
}
}
################################################

Le Sun, 03 Feb 2008 21:14:28 +0100, Christian ASTOR

Mamelook wrote:
Oki, donc ce qui nous donne :
#define DMDO_DEFAULT 0
#define DMDO_90 1
#define DMDO_180 2
#define DMDO_270 3
#define DM_DISPLAYORIENTATION 0x00000080
DEVMODE devMode = {0};
devMode.dmSize = sizeof(DEVMODE);
devMode.dmFields = DM_DISPLAYORIENTATION;
devMode.dmOrientation = DMDO_180;
if(ChangeDisplaySettingsEx(NULL, &devMode, NULL, 0,
NULL)!=DISP_CHANGE_SUCCESSFUL)
MessageBox(NULL, "pasok", "", MB_OK);
Il ni a toujour pas d'erreur retourner ni de changement a l'écran...



Les champs principaux doivent normalement être renseignés (width,
height, frequency, ...)
On récupère les valeurs pas défaut avec EnumDisplaySettingsEx()
On doit ensuite tester avec CDS_TEST, puis valider (éventuellement avec
d'autres flags CDS_*)
Mais même là, si le driver ne supporte pas, ça ne marchera peut-être pas
ou il faudra rebooter (DISP_CHANGE_RESTART)...


Christian ASTOR
Le #9746901
Mamelook wrote:
Dsl j'ai pas mit le bon code, le voici :



Il y a toujours des erreurs (dmFields, test retour, CDS_*)
mais si ce n'est pas un Mobile, il y a peu de chances que cela soit
supporté.
Mamelook
Le #9746881
DSl, j'arrive vraiment pas a le faire marcher ...
Si tu voit ou sont les erreurs, peut tu modifier ce petit bou de code stp ?

Le Fri, 08 Feb 2008 09:07:32 +0100, Christian ASTOR

Mamelook wrote:
Dsl j'ai pas mit le bon code, le voici :



Il y a toujours des erreurs (dmFields, test retour, CDS_*)
mais si ce n'est pas un Mobile, il y a peu de chances que cela soit
supporté.


Marilyn Dubois
Le #9746871
Mais c'est quoi du langage C ? ou un script en perl ?
Et comment envoyer cela pout l'utiliser ?


"Mamelook"
Bonjour, Je voudrai faire une blague a un ami en lui envoyant un programme
qui inverse l'image de l'ecran, de fasson temporaire bien sur, le probleme
c'est que je voit pas du tout comment faire ... Quelqun aurai une idée ?


Publicité
Poster une réponse
Anonyme