GetWindowRect .nt [Résolu]

Messages postés
8
Date d'inscription
jeudi 26 décembre 2002
Dernière intervention
2 mai 2006
- - Dernière réponse : crenaud76
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Dernière intervention
9 juin 2006
- 3 mai 2006 à 00:12
Bonjour,

J'ai un problème avec le petit bout de code ci-dessus... Je suis en train de m'arracher les cheuveux dessus. J'ai l'erreur suivante "Attempted to read or write protected memory. This is often an indication that other memory is corrupt." à la ligne indiquée en rouge en dessous.

Ha, si j'avais, je travail avec VB 2005...

Merci

Module

mod_main

'Description de la structure RECT

Public
Structure RECT

Public Left
As
Long

Public Top
As
Long

Public Right
As
Long

Public Bottom
As
Long

End
Structure

'Déclaration des API

Public
Declare
Function GetWindowRect
Lib
"user32" (
ByVal hwnd
As
Long,
ByVal lpRect
As RECT)
As
Long

Public
Declare
Function GetActiveWindow
Lib
"user32" ()
As
Long
End

Module

Public
Class frm_main

Private
Sub Button1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.Click

Dim rect_activeWindow
As RECT
GetWindowRect(GetActiveWindow(), rect_activeWindow)


MsgBox(rect_activeWindow.Top)

End
Sub
End

Class
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
3
Merci
Salut

Le paramétre lprect de ton getwindowrect est en byval, donc c'est normal qu'il n'y arrive pas. Il peut pas te retouorner ton rectangle. Passe le donc en byref et c'est ok.
De plus en .net la structure rect est remplacer par system.drawing.rectangle




Public Class frm_main

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim rect_activeWindow As System.Drawing.Rectangle
    GetWindowRect(GetActiveWindow, rect_activeWindow)

    MsgBox(rect_activeWindow.Top)
  End Sub

End Class

Module mod_main

  'Déclaration des API
  Public Declare Function GetWindowRect Lib "user32" (ByVal hwnd As IntPtr, ByRef lpRect As System.Drawing.Rectangle) As Integer
  Public Declare Function GetActiveWindow Lib "user32" () As IntPtr

End 




Module


Kenji



<hr width="100%" size="2">



Merci de cliquer sur "Réponse acceptée" si une réponse vous convient.

Merci Charles Racaud 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Messages postés
8
Date d'inscription
jeudi 26 décembre 2002
Dernière intervention
2 mai 2006
0
Merci
Un mot: MERCI

Ca faisait des heures que je cherchais l'erreur !!!!!!!
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Dernière intervention
9 juin 2006
0
Merci
Et la palme d'or du jour revient à tsc et Charles Racaud, qui, sur VBFrance ont sans doute été les seuls à bien lire le règlement aujourd'hui !
tsc : Un bonjour, aucune exigence, un bout de code digne, un message d'erreur en entier, une version de VB ...
Charles : Une réponse claire et efficace
tsc : Grand retour en force pour un "merci" et une acceptation de la réponse de Charly !!
Et tout ca sans fôte dorte au grafffe !!!!

MERCI ! MERCI a vous deux messieurs !!!

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.