HORLOGE EN GDI (WIN32)

cs_AmK Messages postés 368 Date d'inscription jeudi 13 mars 2003 Statut Membre Dernière intervention 27 janvier 2010 - 1 août 2004 à 15:41
fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008 - 26 juin 2007 à 17:38
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/25054-horloge-en-gdi-win32

fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008
26 juin 2007 à 17:38
Houla ca en jette ca!
Je vais pouvoir m'inspirer du Ctrl+shift pour les combo de touches...
Vraiment un tres beau travail, pour un debutant comme moi ca en fait presque peur... :D
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
2 mars 2007 à 17:56
le projet est déjà en entier,
j'ai même pris la peine de mettre le .DSW alors ...
que demander de plus ?!?
cs_bibo29 Messages postés 1 Date d'inscription vendredi 29 décembre 2006 Statut Membre Dernière intervention 2 mars 2007
2 mars 2007 à 15:35
S'il vous plait donner le projet en c++ completement
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 août 2004 à 00:36
Va voir ici, tu auras demo complete et juste le type de hook a changer.
http://www.cppfrance.com/code.aspx?id=17387
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 août 2004 à 00:15
Faut une dll pour un hook global, ici keyboard.
DLL doit exporter une func Init(HWND) (exemple) avec un param long (HWND de ta fenetre a notifier). Une autre Stop() pour liberer le hook.
Dans Init() tu enregistres le hwnd en segment 'shared' pour que soit accessible depuis tous les processus ou ta dll sera mappee par le systeme. Ensuite tu lances un SetWindowsHookEx WH_KEYBOARD. Dans ta callback de hook ou tu recevras les touches, toutes les repasser a CallNextHookEx, quand sera la combinaison attendue tu PostMessage(hwnd,JCD_SHOW,0,0) et rien d'autre.
Quand ton prog doit fermer, tu appelles Stop() qui elle arretera le hook, tu FreeLibrary() depuis le prog, Sleep(200) et DeleteFile sur la DLL qui se trouve dans dossier temp.
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
16 août 2004 à 00:14
Ben tu fais ta dll avec ton hook (tres simple, plein d'exemple sur le site) puis la charge ds tes ressources, au demarrage, tu la sors et l'envoie ds un dossier temp, puis a la fin tu la supprime.
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
16 août 2004 à 00:03
mais je ne comprend pas le but de cette manipe, je ne suis pas tres a l'aise avec les DLL, Hook separemment, donc en meme temps, je suis tout perdu.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 août 2004 à 23:31
Comme dit plus haut:
Tu mets la dll en ressource, tu la copies dans dossier temp, la demarre, lance le hook et la supprime a la fermeture.
Ainsi que EXE a distribuer. Bien entendu DLL doit etre petite pour ne pas trop grossir l'exe.
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
15 août 2004 à 23:29
ha ok, excusez-moi, mais comme j'ai deja un timer pour l'horloge, je me suis dit, 1 pierre-2coups, on va faire cela dedans, mais j'aimerais (volontier) avoir plus de precisions sur vos solutions
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
15 août 2004 à 23:27
Ben en fait, un hook sur clavier serait mieux ke ton timer.
V2 = Version 2
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 août 2004 à 23:26
Ben oui SHIFT+CTRL+F11 sur timer c'est pas top, ne va pas avec la qualite de l'ensemble.
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
15 août 2004 à 23:22
heu j'ai l'impression de ne pas comprendre, c'est quoi "V2", j'ai pas comrpis le probleme que l'on cherchait a resoudre, c'est le SHIFT+CTRL+F11 qu'il faut que je change ?

>> AlexMAN
moi (personnellement) j'aime pas trop c'est notation, car sinon tout le code est au meme niveau, et je m'y retrouve plus, mais bon ca c'est suivant les gouts
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 août 2004 à 23:06
Une V2 avec hook clavier pour eviter test de touche dans timer ?
Un si beau travail meriterait bien cette touche finale.
Tu mets la dll en ressource, tu la copies dans dossier temp, la demarre et la supprime a la fermeture. Voila une idee.
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
15 août 2004 à 22:59
if () {
//code//
}

a chakun sa maniere, les gouts et les couleurs ne se discutent pas..
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
15 août 2004 à 22:53
c'est quoi ta maniere ?
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
15 août 2004 à 22:52
Ah mais je ne te reproche pas ta maniere d'indenter, c juste ka ca change de ma maniere, et j'ai du mal a lire, mais c'est tout ..
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
15 août 2004 à 22:50
boujour tout le monde,

avec un peu de retard pour la reponse :
il suffit de faire CTRL+SHIFT+F11 longtemps (au moins 1 seconde entiere) car je teste la frappe de la touche avec le timer ...

>> AlexMAN
pourquoi dis-tu que mes indentations sont mauvaises, chacun a ca methode d'indentation particuliere, et je pense personnellement que celle que j'utilise est loin d'etre la plus mauvaise.
Je trouve qu'elle a le merite justement d'etre claire, on indente a chaque nouveau bloc de code (indroduit par '{' et fini par '}').


Pour ce qui est de la transparence de la fenetre, c'est grace au GDI, les regions c'est un des forces du GDI niveau performance.
cs_eRoZion Messages postés 241 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 8 octobre 2007 1
1 août 2004 à 23:35
... 6 fois d'affilé ou maintenir enfoncé. ;)
cs_eRoZion Messages postés 241 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 8 octobre 2007 1
1 août 2004 à 23:34
Moi ca marche le coup de la faire reapparaitre mais il faut faire la manipe clavier a peu près six fois d'affilé, voir plus.

C'est très joli.
cs_LiBe444 Messages postés 220 Date d'inscription dimanche 7 septembre 2003 Statut Membre Dernière intervention 7 avril 2007
1 août 2004 à 19:38
C'est bluffant ; je me demande sincèrement comment permettre de maintenir la transparence de la fenêtre PENDANT le mouvement de la souris.
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
1 août 2004 à 17:29
mm pb ke Brunews.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
1 août 2004 à 17:26
ah oui au fait, ne peut pas en etre autrement, y a pas de dll de hook clavier.
D'accord ?
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
1 août 2004 à 17:25
une fois la fenetre masquee, ne revient plus, reste le taskmanager pour fermer le prog.
Qlqun d'autre a ce prob ?
Sinon joli tout plein.
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
1 août 2004 à 16:18
Franchement, whaa le resultat, mais par contre, le code est pas tres beau (nivo presentation je parle, indentation plus precisement). Mais jne peux mettre kun 10 paske le resultat est terrible, bravo
Au fait, une ptit capture d'ecran serait bien ;)

++
cs_AmK Messages postés 368 Date d'inscription jeudi 13 mars 2003 Statut Membre Dernière intervention 27 janvier 2010 1
1 août 2004 à 15:41
franchement c'est trés beau !!!!!
10/10
Rejoignez-nous