Bloc mémoire

Résolu
le cancre Messages postés 292 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 27 novembre 2009 - 10 nov. 2006 à 21:12
le cancre Messages postés 292 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 27 novembre 2009 - 12 nov. 2006 à 17:39
Salut à tous

alors voila
je cherche à connaitre la valeur d'un scrollbar d'une form exterieur à mon application ,pour ca j'utilise la fonction GetWindowLong pour choper l'adresse

xHwnd = handle de la fenetre cible
xAdresse = GetWindowLong(xHwnd, GWL_WNDPROC)

' je copie un bloc
CopyMemory ByVal VarPtr(xData(0)), xAdresse, UBound(xData)
    Dim Donnee As String
    For i = 0 To UBound(xData)
        Donnee = Donnee & xData(i)
    Next i
Debug.print Donnee
(debug = 108768017000101460100000001609728010100000001609..etc )

le message d'un scrollBar horizontal à une constante de 115
si je filtre "Donnee" et j'affiche si ya 115 dedans alors à chaque fois que je change le scrollbar horizontal ,j'ai bien une réponse avec plein de chiffres,je me dis que j'intercepte bien si on veut l'evenement du scrollbar

c'est surement pas la bonne démarche pour obtenir la valeur du scrollbar mais j'pense qu'il existe un autre moyen que le subclassing pour la connaitre?

3 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
11 nov. 2006 à 00:46
Une adresse n'a de sens QUE dans l'espace mémoire du processus où tu la prends, arrivée dans le tien elle est totalement invalide.

ciao...
BruNews, MVP VC++
3
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
12 nov. 2006 à 17:10
salut,

tu cherches le handle de la scrollbar avec findwindowex à partir de xHwnd... et avec le handle de la scrollbar, tu appelles GetScrollPos...

GetScrollPos :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/scrollbars/scrollbarreference/scrollbarfunctions/getscrollpos.asp

P.S : quand tu fais une copie mémoire d'une GWL_WNDPROC d'un autre processus, tu lis en fait de la mémoire aléatoirement dans TON processus...de plus, si tu lis un GWL_WNDPROC de ton application...tu vas lire les opcodes asm de la procédure de gestion de fenêtre...et non la pile, ni le tas...donc aucun risque de toruver une variable en faisant ça...donc non ce n'était pas la bonne méthode

ShareVB
3
le cancre Messages postés 292 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 27 novembre 2009
12 nov. 2006 à 17:39
ok merci à vous 2 pour vos réponses,

si tu veux j'suis entrain de faire un ocx qui permet de mettre des images dans le code source,un ptit complément pour les commentaires
la seule difficulté que je rencontre pour l'instant c'est de connaitre la position réelle de l'image  suivant la feuille qui possede un  scrollbar

je vais suivre tes instructions ShareVB ..merci pour cette info
0
Rejoignez-nous