Accueil > Forum > > > > mes questions sans réponses
mes questions sans réponses
mardi 7 septembre 2004 à 20:18:47 |
mes questions sans réponses

leprov
|
salut a tous. apres avoir posté ces differentes kestion et ne pas y avoir eu de reponses (maintenant elles sont a perpetes ds la liste des topics, dc jesperes plus trop de ces posts), je les réunis ici en esperant plus de succes.... 1ere question: j'ai un prog ds la systray, lorsque jai un plantage genre "explorer va fermer", ma systray se redessinne, et evidemment mon prog ne se remet pas. y'a t il un evenement particulier que je pourrais capter afin de redessiner ma systray 2eme question: mon prog change la resolution avec ChangeDisplaySettings(), mais windows n'est pas au courant ke la resolution est changé. je m'explique : si windows est en 800*600 et ke mon prog me met en 1024*768, je peux pas mettre dicone en bas a droite de mon bureau car windows croit ke je suis en 800*600 (et dc le coin en bas a droite n'existe pas....). alors comment je fais? merci d'avance pr vos reponses
|
|
mardi 7 septembre 2004 à 21:00:19 |
Re : mes questions sans réponses

NitRic
|
Windows 95/98/Me: If the calling thread has any windows, ChangeDisplaySettings sends them the WM_DISPLAYCHANGE message immediately (for windows in all other threads, the message is sent when the thread can receive nonqueued messages). This may cause the shell to get its message too soon and could squash icons. To avoid this problem, have ChangeDisplaySettings do resolution switching by calling on a thread with no windows, for example, a new thread.
Il propose, pour résoudre le problème, d'appeler ChangeDisplaySettings() via un nouveau thread(via CreateThread()) ...
Tu cré un nouveau thread et lui passe en paramètre la nouvelle résolution, une fois le thread créé, attend qu'il ce ferme avec WaitForSingleObject( handle_du_thread, INFINITE );
Une fois le thread fermé, tu valide, via une variable global ou autre ...
par exemple:
HANDLE hThreadHandle; DWORD dwThreadId; int IsOkay;
typedef struct coord { int x; int y; }coord;
DWORD WINAPI MonThread( void * arg ) {
coord c = *(coord *)arg;
/* ... */ ChangeDisplaySettings( ..., c.x, c.y, ... );
/* si aucune d'erreur */ IsOkay = 1;
ExitThread(0L); return 0L;
}
int main() {
coord c; IsOkay = 0;
c.x = x_value; c.y = y_value;
hThreadHandle = CreateThread(NULL, 0L, MonThread, (void *)&c, 0L, &dwThreadId);
WaitForSingleObject( hThreadHandle, INFINITE );
if ( IsOkay ) { /* tout c'est bien passé */ } else { /* erreur */ }
return 0;
}
C'est une idée, sinon, c'est simplement que le système n'a pas recu les dernières modifications, il te faudrait seulement trouver comment enregistrer les nouvelle modifications pour que le système s'y ajuste ...
Pour ce qui est du systray, je l'ignore, désolé ...
~(.:: NitRic ::.)~
|
|
mardi 7 septembre 2004 à 21:07:35 |
Re : mes questions sans réponses

leprov
|
merci pr cette reponse, jaccepterais plus tard en atendant ke jai aussi une reponse a une autre question. les threads, je sais pas encore faire, dc je garde ta reponse de coté, ca va m'aider, je vais procéder comme ca des ke jaurais appris. encore merci pr ca.
|
|
mardi 7 septembre 2004 à 21:07:35 |
Re : mes questions sans réponses

vecchio56
|
Pour le systray, tu passes sous xp, et plus de bug de ce genre
|
|
mardi 7 septembre 2004 à 21:08:04 |
Re : mes questions sans réponses
|
mardi 7 septembre 2004 à 21:11:21 |
Re : mes questions sans réponses

vecchio56
|
un ptit timer peut-être, mais c'est pas très joli
|
|
mercredi 8 septembre 2004 à 13:27:33 |
Re : mes questions sans réponses

leprov
|
bah j'y avais pensé.....mais bon, c'est pas beau du tout, je préfererais trouver un message a traiter ou un truc du genre...mais je garde en solution de dernier recours....
|
|
jeudi 9 septembre 2004 à 07:58:06 |
Re : mes questions sans réponses

leprov
|
nitric, tu pourrais m'expliquer vite faite deux ou trois trucs pr les threads, histoire que je m'y colle? et accessoirement sur ton bout de code.... :D bon ca a pas l'air compliqué (ca serait pr linstant juste pr comprendre le fonctionnement simple, le multithreading on verra plus tard...). bon donc: c'est quoi le OL de ton DWORD, ca signifie koi? cest koi les erreurs kil pourrait y'avoir ds mon thread? c'est propre a l'utilisation d'un thread la, ou cest juste une erreur ki pourrait survenir sur le cahngedisplaysettings? et la une pitite kestion existentielle assez importante.....kan je crée mon thread, le reste de mon prog peut continuer a tourner non? donc si je saisis bien, il faudrait ke je mette tt mon code du reste du prog apres le waitforsingleobject, sinon mon thread va faire ses traitements et etree bloqué jusqu'a ce que l'instruction waitetcetera soit trouvée? c'est bien comme ca ke ca fonctionne? toute les instruction entre le creat et le wait seront executées en "simultanées" de l'execution du thread (la gestion au nv du systeme ca je sais, enfin je crois, cest le coté codage ki me gene, pas le foncitonnement interne). voila, pr linstant ca devrait aller, j'attend ta reponse, et si j'ai des pbs apres, je reposterais, mais je pense ke ca ira, ca a pas l'air super super dur...
|
|
jeudi 9 septembre 2004 à 10:27:33 |
Re : mes questions sans réponses

NitRic
|
Lorsque le système lance ton exécutable, il cré un process dans lequel ce trouve un minimum de un thread(qui est créé par le systeme) ou sera appelé/executé le point d'entré de ton application(main() ou WinMain()) et en suivera l'exécution du reste de ton code/instructions/...
Un thread == une instruction à la fois Deux threads == deux instructions à la fois etc ...
un DWORD est simplement un `unsigned long`, entier non signé définie dans windef.h si mes souvenirs sont bons.
Dans ton thread, les erreurs qu'il pourait y avoir dépendent du code que tu vas y mettre et non du thread lui-même.
Oui, si tu met du code entre le CreateThread() & le WaitForSingleObject(), ce code pourait être exécuté en même temp que celui du thread. Tout dépend des tâches que les threads doivent effectuer.
Tout ceci n'est peut-être pas très claire mais, j'ai un excellent lien à te proposer qui traite du multithreading, il est parfait et très bien expliqué, il y à quelques exemples, mise en situation, etc ... il est en francais >> http://bob.developpez.com/tutapiwin/article_46.php
Je le conseil _fortement_ à tout ceux/celles qui veulent en savoir d'avantage(ou tout simplement apprendre) sur le multithreading, débutant ou non.
~(.:: NitRic ::.)~
|
|
jeudi 9 septembre 2004 à 11:15:40 |
Re : mes questions sans réponses

leprov
|
bah ecoute merci....pr les threads, javais dc les idées a peu pres ckaires (sauf sur la mise en oeuvre pratique....). et ce que je te demaindais pr ton DWORD, cest pk OL, ca signifie qqch de particuilier je suppose.... a priori les seules instructions que je puisse avoir ds mon threads seraient le changement de resolution par changedisplaysettings, et la recuperation des parametres courants de l'ecran pr changer la resolution en gardant le reste des parametres...donc je pense pas traiter d'erreurs, ds ce cas.... merci pr ca, je vais voir comment je peux me dépatouiller avec
|
|
Cette discussion est classée dans : windows, ke, prog, questions, systray
Répondre à ce message
Sujets en rapport avec ce message
Comment faire un prog qui s'ouvre dans une fenetre Windows et pas Dos [ par fucker ]
Vous connaisez mon probleme.Merci de m'aider.
Juste quelques petites questions sans rapport direct avec la prog [ par Beuss ]
C'est juste pour savoir si avant de poser vos questions sur le forum vous lisez la doc qui est fournie avec votre compilo ou si vous regarder sur le n
getchar non bloquant !!! [ par MasterNKZ ]
Salut tout le monde,Je programme en C sous linux, et je voudrai savoir si il existe une astuce pour rendre le getchar non bloquant, ou existe t-il une
utiliser un Timer [ par melkiorlenecrarque ]
hello! jutilise VC++ 6 et et j'essai de transcrire mon programme "combat warhammer" pour windowsvoila mon pb:mon prog en appuyant sur un boutton execu
ioctl de Linux --> ? de Windows [ par vinvay ]
Pour mon stage, je dois passer un prog en C sous Linux en un prog sous Windows. Mon problème est le suivant : je ne trouve pas l'équivalent sous Windo
C++ et Appli Windows ??? [ par Bombela ]
Salut !Je prog en delphi depuis quelque mois.J'ai visual C++ standard et je me suis dit : Tien ! je vais essayer le C++ !Malheur !!!Je ne pige rien !
En prog Windows (MFC si possible) [ par thebestvinz ]
Comment faire pour modifier dynamiquement le texte contenu dans la barre bleue la plus haute de la fenetre. (Frame)
2 questions en api win32 [ par youpiyoyo ]
j'aimerai tout d'abord savoir comment mettre un titre sur ma boite de dlg en api win32 sachant ke a border=none dans la gestion des ressources. a mon
Linux questions facile [ par xarier ]
-------------salut tout le monde comme vous savez tous opengl est multiplate form alors il existe des library qui le rend portable ma question et tout
Variables, je comprends rien! [ par StevenJLMunn ]
J`ecris avec un clavier americain donc je ne peut pas ecrire avec les acents.Je fais un prog pour les codes serie (je pense ke tout le monde siat ce k
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|