LIBÉRER LA TAILLE MAXIMALE D'UNE FENÊTRE PAR SUBCLASSING

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 - 29 oct. 2010 à 11:35
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 30 oct. 2010 à 12:33
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/52417-liberer-la-taille-maximale-d-une-fenetre-par-subclassing

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
30 oct. 2010 à 12:33
Ah bien vu le coup de l'unicode. A vu de nez, il y a au moins le CreateRemoteThread sur LoadLibraryA avec un nom de dll en unicode qui n'avait aucune chance de marcher. Mais pour porter complètement, j'aurais bien besoin d'une [cynisme]Delphi 2010 edition perso/cynisme.

En tout cas ça marchait pas sur Vista non plus ! Problème de privilège, mais j'ai mis à jour le source avec la correction.

En tout cas, merci pour les commentaires et les essais. :)
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
30 oct. 2010 à 01:08
@Cirec
En fait, je n'ai pas encore compilé le source de rt15. J'ai juste testé l'.exe et jeté un coup d'oeil aux fichiers.pas.
Pour moi, je crois qu'il faut que je me libère bien 2/3 jours pour digérer un truc pareil (et encore! sans Madame Caribensila qui est particulièrement bavarde en cette saison).
Les sources de rt15 n'étant jamais des rogatons ou des resucées, les commentaires aident en général beaucoup mon assimilation. Et ton dernier y participera à coup sûr ! ;)

C'est sûr que c'est une belle démo, et qui va bien plus loin que la préoccupation du forum.
Merci à tous deux.
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
30 oct. 2010 à 00:14
ayé j'ai trouvé :p

D 2009 et l'unicode.
- l'injection ne se faisait pas ... pourtant il n'y avait pas d'erreur et les handles étaient bien trouvés/alloués ???

j'ai donc modifié le code pour passer le tout en AnsiString et là, magie, tout fonctionne ... Bravo encore belle démo ;)

@Caribensila:
justement je voulais te demander sous quelle version de Delphi as-tu compilé le code ?
as-tu essayé sur ta dernière version ?
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
29 oct. 2010 à 19:08
@Cirec
Il ne serait pas étonnant qu'avec 2 écrans, le bridage par défaut de la taille des fenêtres effectué par Windows ait un mécanisme différent, non ?
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
29 oct. 2010 à 19:01
Salut,

Pour info, ça fonctionne chez moi avec :
- XP
- SP3
- 1 seul écran (1440x900)
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
29 oct. 2010 à 12:10
Salut,

Bah non, vu de loin je n'ai pas d'idée... Et je n'ai accès ni à un SP3 (Je préfère rester en SP2), ni à deux écrans. Mais j'essaierais sur Vista demain.

Si tu as un peu de temps pour diagnostiquer, tu peux :
1/ Vérifier que la dll est injectée correctement dans l'autre processus. Facile avec processexplorer qui affiche dans le panneau du bas la liste des dlls (Switcher entre dll et handle avec ctrl+D et ctrl+ H). Tu peux aussi ajouter une MessageBox dans la dll.
2/ Tester si le problème est plutôt du côté du message en faisant une appli Delphi comme sur le lien plus haut:
http://www.delphicorner.f9.co.uk/articles/wapi8.htm
Mais au lieu de limiter la taille minimale, agrandir la taille maximale.
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
29 oct. 2010 à 11:35
Salut,

bon alors ... :D

comme d'habitude du beau code et très instructif ... Bravo

mais ... il y a un mais ^^
chez moi, (XP SP3 2 écrans) sans code supplémentaire j'arrive à agrandir, à la main, les fenêtres jusqu'à atteindre la taille des deux écrans (1024 * 2 = 2048) ... mais (<--- il est là :D) quand je lance ton programme j'obtiens rien de plus ... pas un pixel, ni en hauteur ni en largeur !!!

est ce du aux deux écrans ?
à la version de l'OS ?
où autre ... une idée ?

@++
Rejoignez-nous