GetWindowRect .nt

Résolu
cs_tsc Messages postés 8 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 2 mai 2006 - 2 mai 2006 à 20:04
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre 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

3 réponses

Utilisateur anonyme
2 mai 2006 à 21:09
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.
3
cs_tsc Messages postés 8 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 2 mai 2006
2 mai 2006 à 21:14
Un mot: MERCI

Ca faisait des heures que je cherchais l'erreur !!!!!!!
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
3 mai 2006 à 00:12
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 !!!
0
Rejoignez-nous