Avez-vous les mêmes infos que moi ?

Sujets variés concernant le développement en PureBasic
PAPIPP
Messages : 534
Inscription : sam. 23/févr./2008 17:58

Avez-vous les mêmes infos que moi ?

Message par PAPIPP »

Bonjour à tous.

Avant de poster sur le forum anglais, je voudrai savoir si vous obtenez les mêmes résultats que moi.
Voici le PB (Compilation sous PB530 XP sp3).

Pour connaitre la position du rectangle sous lequel la souris se trouve. J’utilise les deux instructions ci-dessous.

hwnd=WindowFromPoint_(DX | DY<<32)
GetWindowRect_(hWnd,POS_R)

Suivant que ces deux instructions soient placées dans le prg principal ou dans un Thread,
on obtient des résultats différents si le curseur se situe dans la zone du screen (openwindowedscreen),
les résultats sont les mêmes en dehors de cette zone.

Pouvez-vous me confirmer ces résultats ?
Et si quelqu’un à une explication je suis preneur.
PS : compiler en mode Thread avec l'option debug
Vous pouvez déplacer la fenêtre.

Code : Tout sélectionner

EnableExplicit
Structure x
  s.i ; type de sprite
  x.i ; position x
  y.i ; position y
  a.i ; varie de 128 à 255
EndStructure
Structure inforect
  StructureUnion
    info.rect
    infoi.l[4]
  EndStructureUnion
EndStructure
Global Dim m(60),ev,Dim t_sp.x(7,8),MAXx.l,MAXy.l,NB_PAS
Global rcwin.rect,RCpaint.RECT, POSRC1.rect,POS_R.rect; ,rcClip.RECT, rcOldClip.rect
Define WMx,WMy,hwnd,IN_OUT,Mx, My,MBl,MBR,MBM,DX,DY
Define POS_x, POS_y,H_sp,L_sp,nb_sp,PX,PY,i_sp
Define  M_err$="",i,thread1
Macro __q_t_
  "
EndMacro

Macro __n(__n)
  __q_t_#__n#=__q_t_+Str(__n)+" "
EndMacro
Procedure posrect(*POSRC.rect)  ; Shared ou Global (voir aussi: Protected et Static).
  Protected hwnd.l,DX.l,DY.l, nb_d, dtemps, dth,dtv,DXa,DYa
  nb_d=ExamineDesktops()
  MAXx=DesktopWidth(0)
  MAXy=DesktopHeight(0)
  dtemps=10
  Repeat
    DX=DesktopMouseX()
    DY=DesktopMouseY()
    hwnd=WindowFromPoint_(DX | DY<<32)
    GetWindowRect_(hWnd,*posrc)
    If nb_pas%100=0
      Debug __n(*posrc\bottom)+__n(*posrc\left)+__n(*posrc\right)+__n(*posrc\top)+__n( hwnd)
    EndIf 

    dth=dtemps/(Abs(Dx-DXa)+1); + 1 pour éviter la division par zéro à l'arret du curseur
    dtv=dtemps/(Abs(DY-DYa)+1)
    Delay(dth+Dtv) ; pas trés orthodoxe mais plus rapide que DT/(sqr(vx*vx+vh*vh))
    DXa=DX
    DYa=DY
  Until dx+dy<2 Or (DX+DY+2)=>(MAXx+maxy) ; j'ai laissé cette possibilité pour déactiver le thread (phase d'essai en prg autonome)
  ;                                          placer le curseur de la souris en haut en gauche mois de 1 pixel de 0,0
  ;                                                                          ou en bas à droite  (curseur proche de MAXx+MAXy)
EndProcedure

Enumeration
  #image
  #cursor=100
  #mainform
  #bout
EndEnumeration
  #scr_x=0
  #scr_Y=0
  #scr_la=322
  #scr_Ha=276
  #scr_laP=40
  #scr_HaP=46
  #grs=210

  ; carte$="1T 2T 3T 4T 5
  ;************************************************************************************************************************************
  Macro pos_screen
    hwnd=WindowFromPoint_(DX | DY<<32)
    GetWindowRect_(hWnd,POS_R)
    If nb_pas%100=0
      Debug __n(pos_r\bottom)+__n(pos_r\left)+__n(pos_r\right)+__n(pos_r\top)+__n( hwnd)
    EndIf 
  EndMacro 

 
;*************************************************************************************************************************************
;*********************         Recherche des infos sur la souris et la zone dans laquelle elle se situe            *******************
;*************************************************************************************************************************************
Macro M_INFO_RECT
  WMx=WindowMouseX(#mainform)
  WMy=WindowMouseY(#mainform)
  MBl=MouseButton(#PB_MouseButton_Left)
  MBR=MouseButton(#PB_MouseButton_Right)
  MBM=MouseButton(#PB_MouseButton_Middle)
  DX=DesktopMouseX()
  DY=DesktopMouseY()
  Mx=MouseX()
  My=MouseY()
  ; *****************   Position des fenêtres   *******************************
  GetWindowRect_(hwnd,@rcwin) ; rectangle de la fenêtre ouverte par openwindow() valable même après déplacement
                              ;   GetClipCursor_(@rcClip)     ; Rectangle de toute la surface de l"écran disponible pour le curseur  à ce moment.
  Define RCwinold.rect
  If (POSRC1\right+#scr_laP)=<rcwin\right
    CopyMemory(POSRC1,RCpaint,SizeOf(rect))
  EndIf
  POS_x=WMx/H_sp
  pos_y=WMy/H_sp
EndMacro

;*************************************************************************************************************************************
;*********************    Recherche pour savoir si le curseur est dans de rectangle de window ou de screen         *******************
;*************************************************************************************************************************************
Macro M_MOUSE_IN_OUT
  M_INFO_RECT
  MouseLocate(WMx,WMy)
  If Wmx>0 And DY-1>rcpaint\top And DY+1<rcpaint\bottom And DX-1>rcpaint\left And DX+1<rcpaint\right
    ReleaseMouse(0)
    IN_OUT=1
  Else
    IN_OUT=0
    ReleaseMouse(1)
  EndIf
  CopyMemory(rcwin,RCwinold.rect,SizeOf(rect))
EndMacro

;*************************************************************************************************************************************
;********************* PREPARATION avec ouverture de window et de screen et création des sprites curseur et boitier ******************
;*************************************************************************************************************************************
Macro M_prepar
  InitSprite()
  InitKeyboard()
  InitMouse()
  UsePNGImageDecoder()
 
  hWnd=OpenWindow(#mainform,#scr_x,#scr_Y,#scr_la+#scr_laP,#scr_Ha+#scr_Hap,"Boite_ENCH",13107201)
  If hwnd=0
    M_ERR$="  Création non réussi de OpenWindow "+#LF$ ; #LFCR$
  EndIf
  If OpenWindowedScreen(WindowID(#mainform),#scr_x,#scr_Y,#scr_la,#scr_Ha,0,0,0,#PB_Screen_WaitSynchronization)=0; #PB_Screen_WaitSynchronization  #PB_Screen_SmartSynchronization #PB_Screen_NoSynchronization
    M_ERR$+"  Création de OpenWindowedScreen non réussi "+#LF$ ; #LFCR$
  EndIf
  ; GetClipCursor_(@rcOldClip)       ; Rectangle de toute la surface de l"écran
  GetWindowRect_(hwnd,@rcwin)        ; rectangle de la fenêtre ouverte par openwindow()
  ;****************************** Positionne le bouton gadget  *****************************************************
  If ButtonGadget(#bout,#scr_la-30,#scr_Ha+10,40,25,"OK")=0
    M_ERR$+"  Création non réussi ButtonGadget ="+Str(#bout)+#LF$ ; #LFCR$ non réussi ",+#LF$ ; #LFCR$
  EndIf
  ;*************************************** Création des sprites boitier et curseur **********************************
 
;   If CatchSprite(#image,?BOITIER)=0
;     M_ERR$+"  Création non réussi du sprite BOITIER ="+Str(#image)+#LF$
;   EndIf
  If CatchSprite(#cursor,?Cursor)=0
    M_ERR$+"  Création non réussi du sprite curseur ="+Str(#cursor)+#LF$
  EndIf
  If Len(M_ERR$)>0
    MessageRequester("Erreur ",M_ERR$)
  EndIf
EndMacro

;*************************************************************************************************************************************
;*****************                              Chargement des sprites                                              ******************
;***************** et Appel de la procédure permettant de connaitre LES dimensions du rectangle réservé aux sprites ******************
;*************************************************************************************************************************************
Macro M_charge_sp
  ClearScreen(RGB(100,100,100))
;   H_sp=SpriteHeight(#image)
;   L_sp=SpriteWidth(#image)
  H_sp=46
  L_sp=46
  FlipBuffers()
  nb_sp=42
 
  Dim t_coul.s{2}(7)
  T_coul(0)=" T"
  T_coul(1)=" K"
  T_coul(2)=" C"
  T_coul(3)=" P"
  T_coul(4)="SA"
 
  For px=0 To 6
    For py=0 To 5
      i_sp=PX+(PY*7)
      CreateSprite(I_sp,46,46)
      StartDrawing(SpriteOutput(i_sp))
        DrawingMode(#PB_2DDrawing_Gradient)
        BackColor(RGB(210,210,210))
        Box(0,0,46,46,RGB(210,210,210))
        ;             FrontColor(RGB(0,0,255))
        Select py
          Case 0
            DrawText(10,20,Str(PX+1)+t_coul(PY),RGB(125,162,123),RGB(0,0,0))
          Case 1
            DrawText(10,20,Str(PX+1)+t_coul(PY),RGB(238,155,48),RGB(0,0,0))
          Case 2
            DrawText(10,20,Str(PX+1)+t_coul(PY),RGB(255,0,0),RGB(0,0,0))
          Case 3
            DrawText(10,20,Str(PX+1)+t_coul(PY),RGB(255,255,255),RGB(0,0,0))
          Case 4
            DrawText(10,20,Str(PX+1)+t_coul(PY),RGB(0,0,255),RGB(0,0,0))
          Case 5
            DrawText(10,20,Str(PX+1)+t_coul(PY),RGB(0,0,0),RGB(210,210,210))
           
        EndSelect
        ; DrawText( 10,20, Str(PX+1)+t_coul(PY))
      StopDrawing()
      t_sp(PY,PX)\s=i_sp
      t_sp(PY,PX)\x=h_sp*PX
      t_sp(PY,PX)\y=PY*46
      t_sp(PY,PX)\a=255
     
     
      DisplaySprite(i_sp,PX*46,Py*46)
    Next
  Next
 
 
 
 
; For i=0 To nb_sp-1
;   m(i)=CatchSprite(-1,?BOITIER)
;   ClipSprite(m(i),i*h_sp,0,h_sp,h_sp)
;   PY=i/7
;   PX=I%7
;   t_sp(PY,PX)\s=m(i)
;   t_sp(PY,PX)\x=h_sp*PX
;   t_sp(PY,PX)\y=PY*46
;   t_sp(PY,PX)\a=255
; Next
thread1=CreateThread(@POSRECT(),POSRC1.rect) ; Crée le thread
EndMacro                                             ; Delay(10)


;*************************************************************************************************************************************
;*******************************************************     Programme Principal    **************************************************
;*************************************************************************************************************************************
M_prepar
M_charge_sp

;*************************************************************************************************************************************
;*****************************************                boucle des événements              *****************************************
;*************************************************************************************************************************************
Repeat
  NB_PAS+1
;*************************     deuxième boucle pour les événements dans la zone openwindow    ****************************************
  Repeat
    Delay(1)
    ev=WindowEvent()
    If ev=#PB_Event_Gadget
      If EventGadget()=#bout
        StartDrawing(WindowOutput(#mainform))
          DrawText(200,300,"Bout_Click"); [, CouleurTexte [, CouleurFond]])
          DrawText(10,300,Space(40),RGB(#grs,#grs,#grs),RGB(#grs,#grs,#grs))
        StopDrawing()
      EndIf
    EndIf:
    If ev=#PB_Event_CloseWindow
      End
    EndIf
  Until ev=0
  ;************************** suite  pour la boucle des événements de la zone définie dans openwindowedscreen ********************
  ShowCursor_(1)
  FlipBuffers()
  ExamineKeyboard()
  ExamineMouse()
  ClearScreen(RGB(100,100,100))
  For PX=0 To 6
    For PY=0 To 5
      If Not (px=6 And py=5)
        DisplayTransparentSprite(t_sp(Py,Px)\s,t_sp(Py,Px)\x,t_sp(Py,Py)\Y,190);, RGBA(128,128,128,0))
      EndIf
    Next
  Next
  pos_screen ; macro de test avant
  M_MOUSE_IN_OUT
;   pos_screen ; macro de test après
 
  If IN_OUT
    DisplayTransparentSprite(#cursor,MouseX(),MouseY(),255)
  EndIf
  If pos_x<7 And pos_y<6 And Mx>0 And (pos_x*pos_y)<>30
    ;     DisplayTransparentSprite(t_sp(POS_y,POS_x)\s,t_sp(Pos_y,Pos_x)\x+3,t_sp(Pos_y,Pos_y)\Y+3,255);,RGB(10,10,10))
    DisplaySprite(t_sp(POS_y,POS_x)\s,t_sp(Pos_y,Pos_x)\x+3,t_sp(Pos_y,Pos_y)\Y+3);,RGB(10,10,10))
  EndIf
  If MBL=1   ; MBL=MouseButton(#PB_MouseButton_Left) le bouton a été poussé
    StartDrawing(WindowOutput(#mainform))
      DrawText(10,300,"pos_x="+Str(pos_x)+", pos_y="+Str(pos_y)); [, CouleurTexte [, CouleurFond]])
      DrawText(200,300,Space(20),RGB(#grs,#grs,#grs),RGB(#grs,#grs,#grs))
    StopDrawing()
  EndIf
  ;   FlipBuffers()
Until KeyboardPushed(1);
;********************************************************************************************************************************
;******************************************* DATA SECTION ***********************************************************************
;********************************************************************************************************************************
DataSection
  Cursor:
  Data.q $0A1A0A0D474E5089,$524448490D000000,$170000000F000000,$1553D40000000608,$41444969000000BC
  Data.q $000A4193C5CB3854,$FFF3CF897D040820,$05BA9616043C283F,$36E890D099AA782D,$502C30C1A444DCCC
  Data.q $5C2C090C06090350,$C169C1E04970AC16,$E08828704E094E0E,$6BCF51056F0320A3,$7B0D81A19FEF024D
  Data.q $1297AF02D317B619,$0AEBBF985B3E1DEC,$8FFC01D32F45AEBF,$00002F8AE621C09C,$42AE444E45490000
  Data.q $0000000000008260
  BOITIER:

EndDataSection
voici les résultats que j'ai obtenus
*posrc\bottom=724 *posrc\left=619 *posrc\right=941 *posrc\top=448
pos_r\bottom=773 pos_r\left=616 pos_r\right=984 pos_r\top=426
*posrc\bottom=724 *posrc\left=619 *posrc\right=941 *posrc\top=448
pos_r\bottom=773 pos_r\left=616 pos_r\right=984 pos_r\top=426
*posrc\bottom=941 *posrc\left=198 *posrc\right=520 *posrc\top=665 ; ici déplacement de la fenêtre résultats =
*posrc\bottom=941 *posrc\left=198 *posrc\right=520 *posrc\top=665
pos_r\bottom=990 pos_r\left=195 pos_r\right=563 pos_r\top=643 ;ici curseur dans la zone screen résultats <>
*posrc\bottom=941 *posrc\left=198 *posrc\right=520 *posrc\top=665
pos_r\bottom=990 pos_r\left=195 pos_r\right=563 pos_r\top=643
*posrc\bottom=941 *posrc\left=198 *posrc\right=520 *posrc\top=665
pos_r\bottom=990 pos_r\left=195 pos_r\right=563 pos_r\top=643
*posrc\bottom=941 *posrc\left=198 *posrc\right=520 *posrc\top=665
pos_r\bottom=990 pos_r\left=195 pos_r\right=563 pos_r\top=643
*posrc\bottom=990 *posrc\left=195 *posrc\right=563 *posrc\top=643 ; à partir d'ici la souris est sortie de la zone screen
pos_r\bottom=990 pos_r\left=195 pos_r\right=563 pos_r\top=643
A+
Dernière modification par PAPIPP le mar. 26/août/2014 12:00, modifié 1 fois.
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.
Avatar de l’utilisateur
MLD
Messages : 1103
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Avez-vous les mêmes infos que moi ?

Message par MLD »

@PAPPIP
Bonjour

résultats obtenus sous W7

*posrc\bottom=666 *posrc\left=779 *posrc\right=1101 *posrc\top=390
pos_r\bottom=715 pos_r\left=776 pos_r\right=1144 pos_r\top=365
*posrc\bottom=666 *posrc\left=779 *posrc\right=1101 *posrc\top=390
pos_r\bottom=715 pos_r\left=776 pos_r\right=1144 pos_r\top=365
*posrc\bottom=666 *posrc\left=779 *posrc\right=1101 *posrc\top=390
pos_r\bottom=715 pos_r\left=776 pos_r\right=1144 pos_r\top=365
*posrc\bottom=666 *posrc\left=779 *posrc\right=1101 *posrc\top=390
pos_r\bottom=715 pos_r\left=776 pos_r\right=1144 pos_r\top=365
*posrc\bottom=666 *posrc\left=779 *posrc\right=1101 *posrc\top=390
pos_r\bottom=715 pos_r\left=776 pos_r\right=1144 pos_r\top=365
*posrc\bottom=666 *posrc\left=779 *posrc\right=1101 *posrc\top=390
*posrc\bottom=666 *posrc\left=779 *posrc\right=1101 *posrc\top=390
pos_r\bottom=715 pos_r\left=776 pos_r\right=1144 pos_r\top=365
*posrc\bottom=715 *posrc\left=776 *posrc\right=1144 *posrc\top=365
pos_r\bottom=715 pos_r\left=776 pos_r\right=1144 pos_r\top=365
*posrc\bottom=715 *posrc\left=776 *posrc\right=1144 *posrc\top=365
pos_r\bottom=715 pos_r\left=776 pos_r\right=1144 pos_r\top=365
*posrc\bottom=715 *posrc\left=776 *posrc\right=1144 *posrc\top=365
pos_r\bottom=715 pos_r\left=776 pos_r\right=1144 pos_r\top=365
*posrc\bottom=715 *posrc\left=776 *posrc\right=1144 *posrc\top=365
pos_r\bottom=715 pos_r\left=776 pos_r\right=1144 pos_r\top=365
*posrc\bottom=701 *posrc\left=1071 *posrc\right=1111 *posrc\top=676
pos_r\bottom=701 pos_r\left=1071 pos_r\right=1111 pos_r\top=676
*posrc\bottom=926 *posrc\left=0 *posrc\right=1734 *posrc\top=95
*posrc\bottom=926 *posrc\left=0 *posrc\right=1734 *posrc\top=95
pos_r\bottom=926 pos_r\left=0 pos_r\right=1734 pos_r\top=95


sans déplacement de la fenêtre
J'espère avoir été un peu utile :wink:
A+
PAPIPP
Messages : 534
Inscription : sam. 23/févr./2008 17:58

Re: Avez-vous les mêmes infos que moi ?

Message par PAPIPP »

Merci MLD
Je vois que les résultats sont différents suivant que le curseur est ou n'est pas dans la zone screen
Il y a bien un PB avec l'utilisation de ces instructions le hwnd est différent
A+
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.
Avatar de l’utilisateur
SPH
Messages : 4722
Inscription : mer. 09/nov./2005 9:53

Re: Avez-vous les mêmes infos que moi ?

Message par SPH »

Je n'ai pas tout compris mais voici ce que j'ai obtenu :
*posrc\bottom=510 *posrc\left=502 *posrc\right=824 *posrc\top=234
*posrc\bottom=510 *posrc\left=502 *posrc\right=824 *posrc\top=234
pos_r\bottom=559 pos_r\left=499 pos_r\right=867 pos_r\top=209
*posrc\bottom=510 *posrc\left=502 *posrc\right=824 *posrc\top=234
pos_r\bottom=559 pos_r\left=499 pos_r\right=867 pos_r\top=209
*posrc\bottom=510 *posrc\left=502 *posrc\right=824 *posrc\top=234
pos_r\bottom=559 pos_r\left=499 pos_r\right=867 pos_r\top=209
*posrc\bottom=510 *posrc\left=502 *posrc\right=824 *posrc\top=234
pos_r\bottom=559 pos_r\left=499 pos_r\right=867 pos_r\top=209
*posrc\bottom=510 *posrc\left=502 *posrc\right=824 *posrc\top=234
pos_r\bottom=559 pos_r\left=499 pos_r\right=867 pos_r\top=209
pos_r\bottom=559 pos_r\left=499 pos_r\right=867 pos_r\top=209
*posrc\bottom=510 *posrc\left=502 *posrc\right=824 *posrc\top=234
pos_r\bottom=559 pos_r\left=499 pos_r\right=867 pos_r\top=209
pos_r\bottom=559 pos_r\left=499 pos_r\right=867 pos_r\top=209
*posrc\bottom=510 *posrc\left=502 *posrc\right=824 *posrc\top=234
*posrc\bottom=510 *posrc\left=502 *posrc\right=824 *posrc\top=234
pos_r\bottom=559 pos_r\left=499 pos_r\right=867 pos_r\top=209
*posrc\bottom=545 *posrc\left=794 *posrc\right=834 *posrc\top=520
pos_r\bottom=545 pos_r\left=794 pos_r\right=834 pos_r\top=520
*posrc\bottom=545 *posrc\left=794 *posrc\right=834 *posrc\top=520
pos_r\bottom=545 pos_r\left=794 pos_r\right=834 pos_r\top=520
*posrc\bottom=545 *posrc\left=794 *posrc\right=834 *posrc\top=520
pos_r\bottom=545 pos_r\left=794 pos_r\right=834 pos_r\top=520
*posrc\bottom=687 *posrc\left=0 *posrc\right=1137 *posrc\top=95
pos_r\bottom=687 pos_r\left=0 pos_r\right=1137 pos_r\top=95
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
PAPIPP
Messages : 534
Inscription : sam. 23/févr./2008 17:58

Re: Avez-vous les mêmes infos que moi ?

Message par PAPIPP »

Merci SPH
Je vois ici aussi que les résultats sont différents suivant que le curseur est ou n'est pas dans la zone screen
Il y a bien un PB avec l'utilisation de ces instructions le hwnd est différent
Explication :
DX=DesktopMouseX()
DY=DesktopMouseY()
hwnd=WindowFromPoint_(DX | DY<<32)
GetWindowRect_(hWnd,*posrc)
DesktopMouseX donne la position absolue X du curseur dans l'écran
DesktopMousey donne la position absolue Y du curseur dans l'écran
hwnd=WindowFromPoint_(DX | DY<<32) donne le handle de l'entité sous le curseur
GetWindowRect_(hWnd,*posrc) donne la position du rectangle lié au handle

Donc si au même moment on demande, soit à l'intérieur du PRG soit dans un Thread, le handle sous la souris avec les mêmes instructions on obtient
des handles différents donc des positions différentes. Pourquoi ?

Ps : l'un des handles est le handle lié à openwindowedscreen() est l'autre à openwindow()

J'ai modifié le premier post pour éditer le handle dans les deux cas
A+
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Avez-vous les mêmes infos que moi ?

Message par Kwai chang caine »

Sph a écrit :Je n'ai pas tout compris mais voici ce que j'ai obtenu :
Moi non plus, mais c'est normal :mrgreen:
j'ai ça avec la 5.23 W7 :wink:

Code : Tout sélectionner

*posrc\bottom=649 *posrc\left=659 *posrc\right=981 *posrc\top=373 hwnd=264604 
*posrc\bottom=649 *posrc\left=659 *posrc\right=981 *posrc\top=373 hwnd=264604 
pos_r\bottom=698 pos_r\left=656 pos_r\right=1024 pos_r\top=351 hwnd=329486 
*posrc\bottom=649 *posrc\left=659 *posrc\right=981 *posrc\top=373 hwnd=264604 
pos_r\bottom=698 pos_r\left=656 pos_r\right=1024 pos_r\top=351 hwnd=329486 
*posrc\bottom=649 *posrc\left=659 *posrc\right=981 *posrc\top=373 hwnd=264604 
*posrc\bottom=649 *posrc\left=659 *posrc\right=981 *posrc\top=373 hwnd=264604 
pos_r\bottom=698 pos_r\left=656 pos_r\right=1024 pos_r\top=351 hwnd=329486 
pos_r\bottom=698 pos_r\left=656 pos_r\right=1024 pos_r\top=351 hwnd=329486 
*posrc\bottom=649 *posrc\left=659 *posrc\right=981 *posrc\top=373 hwnd=264604 
pos_r\bottom=698 pos_r\left=656 pos_r\right=1024 pos_r\top=351 hwnd=329486 
*posrc\bottom=649 *posrc\left=659 *posrc\right=981 *posrc\top=373 hwnd=264604 
pos_r\bottom=698 pos_r\left=656 pos_r\right=1024 pos_r\top=351 hwnd=329486 
pos_r\bottom=698 pos_r\left=656 pos_r\right=1024 pos_r\top=351 hwnd=329486 
*posrc\bottom=610 *posrc\left=426 *posrc\right=748 *posrc\top=334 hwnd=264604 
pos_r\bottom=659 pos_r\left=423 pos_r\right=791 pos_r\top=312 hwnd=329486 
*posrc\bottom=610 *posrc\left=426 *posrc\right=748 *posrc\top=334 hwnd=264604 
*posrc\bottom=610 *posrc\left=426 *posrc\right=748 *posrc\top=334 hwnd=264604 
pos_r\bottom=659 pos_r\left=423 pos_r\right=791 pos_r\top=312 hwnd=329486 
*posrc\bottom=908 *posrc\left=24 *posrc\right=1679 *posrc\top=91 hwnd=854456 
*posrc\bottom=908 *posrc\left=24 *posrc\right=1679 *posrc\top=91 hwnd=854456 
pos_r\bottom=908 pos_r\left=24 pos_r\right=1679 pos_r\top=91 hwnd=854456 
*posrc\bottom=908 *posrc\left=24 *posrc\right=1679 *posrc\top=91 hwnd=854456 
pos_r\bottom=908 pos_r\left=24 pos_r\right=1679 pos_r\top=91 hwnd=854456 
*posrc\bottom=610 *posrc\left=426 *posrc\right=748 *posrc\top=334 hwnd=264604 
*posrc\bottom=610 *posrc\left=426 *posrc\right=748 *posrc\top=334 hwnd=264604 
pos_r\bottom=659 pos_r\left=423 pos_r\right=791 pos_r\top=312 hwnd=329486 
*posrc\bottom=659 *posrc\left=423 *posrc\right=791 *posrc\top=312 hwnd=329486 
*posrc\bottom=659 *posrc\left=423 *posrc\right=791 *posrc\top=312 hwnd=329486 
pos_r\bottom=659 pos_r\left=423 pos_r\right=791 pos_r\top=312 hwnd=329486 
*posrc\bottom=659 *posrc\left=423 *posrc\right=791 *posrc\top=312 hwnd=329486 
*posrc\bottom=659 *posrc\left=423 *posrc\right=791 *posrc\top=312 hwnd=329486 
pos_r\bottom=659 pos_r\left=423 pos_r\right=791 pos_r\top=312 hwnd=329486 
Et ça avec la v5.30 W7 (Que j'ai un peu peur d'utiliser à cause de SYMANTEC) :?

Code : Tout sélectionner

*posrc\bottom=649 *posrc\left=659 *posrc\right=981 *posrc\top=373 hwnd=329804 
pos_r\bottom=698 pos_r\left=656 pos_r\right=1024 pos_r\top=351 hwnd=329818 
*posrc\bottom=516 *posrc\left=94 *posrc\right=416 *posrc\top=240 hwnd=329804 
pos_r\bottom=565 pos_r\left=91 pos_r\right=459 pos_r\top=218 hwnd=329818 
*posrc\bottom=516 *posrc\left=94 *posrc\right=416 *posrc\top=240 hwnd=329804 
pos_r\bottom=565 pos_r\left=91 pos_r\right=459 pos_r\top=218 hwnd=329818 
*posrc\bottom=516 *posrc\left=94 *posrc\right=416 *posrc\top=240 hwnd=329804 
pos_r\bottom=565 pos_r\left=91 pos_r\right=459 pos_r\top=218 hwnd=329818 
*posrc\bottom=516 *posrc\left=94 *posrc\right=416 *posrc\top=240 hwnd=329804 
pos_r\bottom=565 pos_r\left=91 pos_r\right=459 pos_r\top=218 hwnd=329818 
*posrc\bottom=516 *posrc\left=94 *posrc\right=416 *posrc\top=240 hwnd=329804 
pos_r\bottom=565 pos_r\left=91 pos_r\right=459 pos_r\top=218 hwnd=329818 
*posrc\bottom=516 *posrc\left=94 *posrc\right=416 *posrc\top=240 hwnd=329804 
pos_r\bottom=565 pos_r\left=91 pos_r\right=459 pos_r\top=218 hwnd=329818 
*posrc\bottom=978 *posrc\left=0 *posrc\right=1680 *posrc\top=133 hwnd=2097960 
*posrc\bottom=978 *posrc\left=0 *posrc\right=1680 *posrc\top=133 hwnd=2097960 
pos_r\bottom=978 pos_r\left=0 pos_r\right=1680 pos_r\top=133 hwnd=2097960 
*posrc\bottom=551 *posrc\left=386 *posrc\right=426 *posrc\top=526 hwnd=329794 
pos_r\bottom=551 pos_r\left=386 pos_r\right=426 pos_r\top=526 hwnd=329794 
*posrc\bottom=744 *posrc\left=595 *posrc\right=1225 *posrc\top=400 hwnd=329798 
pos_r\bottom=744 pos_r\left=595 pos_r\right=1225 pos_r\top=400 hwnd=329798 
pos_r\bottom=565 pos_r\left=91 pos_r\right=459 pos_r\top=218 hwnd=329818 
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
PAPIPP
Messages : 534
Inscription : sam. 23/févr./2008 17:58

Re: Avez-vous les mêmes infos que moi ?

Message par PAPIPP »

Merci KCC

Avec ces infos qui sont identiques aux miennes, on peut en déduire qu'Il y a très certainement une bogue dans la recherche du handle puisque pour le curseur au même endroit au même moment avec des instructions identiques mais placées à des endroit différent on obtient :

1) dans le cas des instruction dans le prg le handle de la fenêtre de l’openwindow()

2) dans le cas des instructions dans le thread le handle de la fenêtre de l’openwindowedscreen()
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.
Lemaquis
Messages : 271
Inscription : mer. 25/déc./2013 7:34
Localisation : la corse

Re: Avez-vous les mêmes infos que moi ?

Message par Lemaquis »

salut
Sous Win 8.1 avec PB 5.30

Code : Tout sélectionner

pos_r\bottom=626 pos_r\left=536 pos_r\right=904 pos_r\top=274 hwnd=1967002 
*posrc\bottom=430 *posrc\left=547 *posrc\right=863 *posrc\top=90 hwnd=459382 
pos_r\bottom=430 pos_r\left=547 pos_r\right=863 pos_r\top=90 hwnd=459382 
*posrc\bottom=626 *posrc\left=555 *posrc\right=1253 *posrc\top=603 hwnd=1180496 
pos_r\bottom=626 pos_r\left=555 pos_r\right=1253 pos_r\top=603 hwnd=1180496 
*posrc\bottom=567 *posrc\left=565 *posrc\right=1243 *posrc\top=166 hwnd=394166 
*posrc\bottom=567 *posrc\left=565 *posrc\right=1243 *posrc\top=166 hwnd=394166 
pos_r\bottom=567 pos_r\left=565 pos_r\right=1243 pos_r\top=166 hwnd=394166 
*posrc\bottom=577 *posrc\left=539 *posrc\right=861 *posrc\top=301 hwnd=2163570 
pos_r\bottom=626 pos_r\left=536 pos_r\right=904 pos_r\top=274 hwnd=1967002 
*posrc\bottom=577 *posrc\left=539 *posrc\right=861 *posrc\top=301 hwnd=2163570 
pos_r\bottom=626 pos_r\left=536 pos_r\right=904 pos_r\top=274 hwnd=1967002 
*posrc\bottom=577 *posrc\left=539 *posrc\right=861 *posrc\top=301 hwnd=2163570 
*posrc\bottom=577 *posrc\left=539 *posrc\right=861 *posrc\top=301 hwnd=2163570 
pos_r\bottom=626 pos_r\left=536 pos_r\right=904 pos_r\top=274 hwnd=1967002 
*posrc\bottom=577 *posrc\left=539 *posrc\right=861 *posrc\top=301 hwnd=2163570 
*posrc\bottom=577 *posrc\left=539 *posrc\right=861 *posrc\top=301 hwnd=2163570 
pos_r\bottom=626 pos_r\left=536 pos_r\right=904 pos_r\top=274 hwnd=1967002 
*posrc\bottom=577 *posrc\left=539 *posrc\right=861 *posrc\top=301 hwnd=2163570 
*posrc\bottom=577 *posrc\left=539 *posrc\right=861 *posrc\top=301 hwnd=2163570 
pos_r\bottom=626 pos_r\left=536 pos_r\right=904 pos_r\top=274 hwnd=1967002 
*posrc\bottom=577 *posrc\left=539 *posrc\right=861 *posrc\top=301 hwnd=2163570 
pos_r\bottom=626 pos_r\left=536 pos_r\right=904 pos_r\top=274 hwnd=1967002 
*posrc\bottom=577 *posrc\left=539 *posrc\right=861 *posrc\top=301 hwnd=2163570 
pos_r\bottom=626 pos_r\left=536 pos_r\right=904 pos_r\top=274 hwnd=1967002 
*posrc\bottom=628 *posrc\left=885 *posrc\right=1563 *posrc\top=227 hwnd=394166 
*posrc\bottom=628 *posrc\left=885 *posrc\right=1563 *posrc\top=227 hwnd=394166 
pos_r\bottom=628 pos_r\left=885 pos_r\right=1563 pos_r\top=227 hwnd=394166 
*posrc\bottom=628 *posrc\left=885 *posrc\right=1563 *posrc\top=227 hwnd=394166 
pos_r\bottom=628 pos_r\left=885 pos_r\right=1563 pos_r\top=227 hwnd=394166 
*posrc\bottom=689 *posrc\left=847 *posrc\right=1561 *posrc\top=145 hwnd=459382 
*posrc\bottom=687 *posrc\left=840 *posrc\right=1554 *posrc\top=143 hwnd=459382 
*posrc\bottom=686 *posrc\left=834 *posrc\right=1548 *posrc\top=142 hwnd=459382 
pos_r\bottom=686 pos_r\left=829 pos_r\right=1543 pos_r\top=142 hwnd=459382 
*posrc\bottom=578 *posrc\left=218 *posrc\right=896 *posrc\top=177 hwnd=394166 
pos_r\bottom=578 pos_r\left=218 pos_r\right=896 pos_r\top=177 hwnd=394166 
*posrc\bottom=167 *posrc\left=516 *posrc\right=636 *posrc\top=143 hwnd=656022 
*posrc\bottom=167 *posrc\left=516 *posrc\right=636 *posrc\top=143 hwnd=656022 
pos_r\bottom=167 pos_r\left=516 pos_r\right=636 pos_r\top=143 hwnd=656022 
LeMaquis
PAPIPP
Messages : 534
Inscription : sam. 23/févr./2008 17:58

Re: Avez-vous les mêmes infos que moi ?

Message par PAPIPP »

Merci Lemaquis
Tes résultats confirment qu'il y a un pb
J'ai posté sur le forum Anglais
A+
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.
Répondre