Page 1 sur 1

Est-ce un bug ? ou c'est moi qui déconne (une fois de plus)

Publié : lun. 22/oct./2012 10:45
par Thyphoon
Désolé pour le sujet .. je ne savais vraiment pas quoi mettre.
Je m'explique.J'ai besoin d'une application en plein écran, qui puisse lancer une autre application et revenir dans son état initiale.
Voici un code simplifié:
application normal vous pouvez bouger la souris. Un clic de souris et sa lance la calculette (c'est juste pour la demo)
Si vous fermez la calculette ça doit revenir a l'application en plein ecran...

Et là je ne sais pas pourquoi c'est comme si le bouton de la souris était toujours appuyé ... résultat ça boucle a l'infinie sur la calculette..

Quelqu'un a une idée ?
PS: J'en parle aussi le forum anglais .. http://www.purebasic.fr/english/viewtop ... =4&t=51830

Code : Tout sélectionner

If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0
  MessageRequester("Error", "Can't open the sprite system", 0)
  End
EndIf

Repeat
  
  ExamineDesktops()
  OpenScreen(DesktopWidth(0), DesktopHeight(0), DesktopDepth(0),"test")

  Launch=#False
  Repeat
    
;
    ExamineMouse()
    
    ExamineKeyboard()
    If KeyboardPushed(#PB_Key_Escape): End : EndIf  
    If MouseButton(#PB_MouseButton_Left) And   Launch=#False
      Launch=#True
    EndIf
    
    ClearScreen(RGB(0,0,0))
    StartDrawing(ScreenOutput())
    Circle(MouseX(),MouseY(),24,#Red)
    StopDrawing()
    FlipBuffers()       ; Inverse the buffers (the back become the front (visible)... and we can do the rendering on the back
    
  Until  Launch=#True
  CloseScreen()
  RunProgram("calc.exe","","",#PB_Program_Wait)
  Delay(500)
ForEver

Re: Est-ce un bug ? ou c'est moi qui déconne (une fois de pl

Publié : lun. 22/oct./2012 15:29
par Le Soldat Inconnu
bizarre en effet

c'est la seule solution que j'ai trouvé :

Code : Tout sélectionner

If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0
	MessageRequester("Error", "Can't open the sprite system", 0)
	End
EndIf

Repeat
	
	ExamineDesktops()
	OpenScreen(DesktopWidth(0), DesktopHeight(0), DesktopDepth(0), "test")
	Delay(500)
	Launch = #False
	Repeat
		
		ExamineMouse()
		ExamineKeyboard()
		
		If KeyboardPushed(#PB_Key_Escape) : End : EndIf
		
		If MouseButton(#PB_MouseButton_Left)
			Launch = #True
		EndIf
		
		ClearScreen(RGB(0, 0, 0))
		StartDrawing(ScreenOutput())
			Circle(MouseX(), MouseY(), 24, #Red)
		StopDrawing()
		FlipBuffers() ; Inverse the buffers (the back become the front (visible)... and we can do the rendering on the back
		
	Until Launch = #True And MouseButton(#PB_MouseButton_Left) = 0
	CloseScreen()
	RunProgram("calc.exe", "", "", #PB_Program_Wait)
	
ForEver

Re: Est-ce un bug ? ou c'est moi qui déconne (une fois de pl

Publié : lun. 22/oct./2012 18:40
par Thyphoon
merci beaucoup Le Soldat Inconnu, je vais te piquer ta solution.
Moi j'avais finit par remplacer "MouseButton(#PB_MouseButton_Left)" par "GetAsyncKeyState_(#VK_LBUTTON) et ça fonctionnait
mais ta solution est plus purebasic friendly !! :P
Sur le forum anglais j'ai quelques reponses aussi... ce que j'ai du mal a savoir si c'est un bug ou si c'est une erreur de ma part dans l'utilisation de ExamineMouse/MouseButton est ce que comme pour les Events des windows il n'y aurait pas un tampon a purger ou une façon de faire ....

Re: Est-ce un bug ? ou c'est moi qui déconne (une fois de pl

Publié : mar. 23/oct./2012 21:20
par Thyphoon
Fred a corrigé le Bug (Voir le sujet sur le forum anglais) :D

Re: Est-ce un bug ? ou c'est moi qui déconne (une fois de pl

Publié : mer. 24/oct./2012 8:05
par Le Soldat Inconnu
Chouette