~ STREAM RADIO ~ v 1.08.1 +1.08.3 lite

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: ~ STREAM RADIO ~ v 0.6.4

Message par Backup »

Ar-S a écrit :Dobro, ta proce et la mienne fonctionnent de la même façon... j'insiste
ben non , car ma procedure lit la couleur de reference ,puis utilise cette couleur

alors que la tienne est fixe :)

c'est bien pour ça que ça doit pas le faire .... et tu fais bien de proposer ce test a Nico .. du coup :mrgreen: :)

il suffit que certaines carte graphique renvoient une couleur differente que celle de ta variable, et t'es dans les choux :)

alors que ma procedure , elle s'adapte :)

boude pas !!
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: ~ STREAM RADIO ~ v 0.6.4

Message par Ar-S »

Code : Tout sélectionner

il suffit que certaines carte graphique renvoient une couleur differente que celle de ta variable, et t'es dans les choux
C'est exactement ce que je me suis dit. Je me suis aussi d'y que la résolution ecran et affichage pouvaient peut-être faire en sorte que le pixel sélectionné ne soit pas le bon..
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: ~ STREAM RADIO ~ v 0.6.4

Message par nico »

Bon ben j'attend la 0.6.5, elle arrive quand :)
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: ~ STREAM RADIO ~ v 0.6.4

Message par Ar-S »

Dès que je peux ! :twisted:
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: ~ STREAM RADIO ~ v 0.6.4

Message par Ar-S »

Voilà la version pour Nico.
J'ai remanié la proce en capturant les pixels (sans valeur par defaut).
Un Messagerequester apparait pour afficher les couleurs des 2 pixels et voir leur correspondance

http://stock.ldvmultimedia.com/AR-S%20Stream_Radio.rar
Dernière modification par Ar-S le lun. 09/déc./2013 20:43, modifié 1 fois.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: ~ STREAM RADIO ~ v 0.6.4

Message par nico »

Ton lien est mort.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: ~ STREAM RADIO ~ v 0.6.4

Message par Backup »

il est en forme le Ar-s :lol:
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: ~ STREAM RADIO ~ v 0.6.4

Message par nico »

Bon j'ai compris que le lien était en fait:
http://stock.ldvmultimedia.com/AR-S%20Stream_Radio.ra

et là ça fonctionne!

[EDIT]
Je viens de faire des tests plus poussés, et on se rend compte que ta procédure ne sert à rien et du coup ça peut ne pas fonctionner.
Je m'explique: si je lance ton programme et que je met une fenêtre aussitôt par dessus, la valeur de comparaison des pixels restent bonne mais ne correspondent pas à ta fenêtre mais à celle qui est au dessus, du coup pas de spectrum. Tu dois récupérer la valeur de pixel de ton écran mais aussi celle de ta fenêtre pour la comparaison.


Peux tu poster ta procédure, je vais te la modifier!
Dernière modification par nico le lun. 09/déc./2013 19:55, modifié 1 fois.
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: ~ STREAM RADIO ~ v 0.6.4

Message par nico »

Je crois que le mieux serait de rester fonctionnel et de faire:
Focus = Spectrum
Perte de Focus = disparition du Spectrum
Premier Plan = Spectrum

Parce que là tu t'es embarqué dans un truc foireux.
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: ~ STREAM RADIO ~ v 0.6.4

Message par Ar-S »

Pour le moment je n'ai pas trouvé de pc ou la 0.6.4 ne fonctionne pas, ça aide pas non plus 8) ...

voilà la procédure
P.S : Creation est une global.b

Code : Tout sélectionner

	
Procedure CheckRecouvre()
	Static CouleurCible1.i , CouleurCible2.i
		
		PosX   =   WindowX(#LDVM)
		PosY   =   WindowY(#LDVM)
		
		If Flag = 0
			SetActiveWindow(#LDVM)
			CouleurCible1.i = Pxlcolor(PosX + 14, posY + 84)
		 	CouleurCible2.i = Pxlcolor(PosX + WindowWidth(#LDVM)-7, posY + 36)
			Flag +1
		EndIf
					
		If Pxlcolor(PosX + 14, posY + 84) <> CouleurCible1  And Pxlcolor(PosX + WindowWidth(#LDVm)-7, posY + 36) <> CouleurCible2 

				If creation = 0
						DestroyOWS() ; macro du closescreen()
						Creation = 1 ; Pour ne pas refermer la fenêtre vu qu'elle est déjà fermée
				EndIf
				Debug "FENETRE CACHEE"
		Else
				If Creation = 1
						CreaOWS() ; macro de l'openwindowsScreen()
						CreaSPRITE() ; Macro de La creation de sprite
						Creation = 0 ; Pour ne pas recréer la fenêtre et les sprites vu qu'ils sont crées
						SetActiveWindow(#ldvm)
				EndIf
				
				Debug "FENETRE VISIBLE"   
		EndIf
		
		ProcedureReturn Creation
		
EndProcedure 
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: ~ STREAM RADIO ~ v 0.6.4

Message par nico »

Elle est ou cette procedure: Pxlcolor
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: ~ STREAM RADIO ~ v 0.6.4

Message par Ar-S »

Ooouupps

Code : Tout sélectionner

Procedure Pxlcolor(X,Y) 
	handle=GetDC_(GetDesktopWindow_()) 
	couleur=GetPixel_(handle,X,Y) 
	ReleaseDC_(GetDesktopWindow_(),handle ) 
	ProcedureReturn couleur 
EndProcedure
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: ~ STREAM RADIO ~ v 0.6.4

Message par Backup »

...
Dernière modification par Backup le mar. 19/août/2014 9:54, modifié 1 fois.
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: ~ STREAM RADIO ~ v 0.6.4

Message par nico »

J'espère n'avoir rien oublié:

Code : Tout sélectionner

Procedure.l PxlcolorWindow(window.i, x.l, y.l)
  Protected Color.l = -1
  
  If StartDrawing(WindowOutput(window))    
    Color = Point(x, y)
    StopDrawing()
  EndIf
  
  ProcedureReturn Color
EndProcedure


Procedure.l PxlcolorDesktop(x.l, y.l) 
  Protected Hdc.i, color.l = -1, Handle.i
  
  Handle = GetDesktopWindow_()
  If Handle <> 0
    Hdc=GetDC_(Handle) 
    If Hdc <> 0
      color=GetPixel_(Hdc, x, y) 
      ReleaseDC_(Handle, Hdc) 
    EndIf
  EndIf
  
  ProcedureReturn color 
EndProcedure


Procedure CheckRecouvre()
  Protected PosX.l, PosY.l, CouleurDesktop1.l , CouleurDesktop2.l
  Static CouleurWindow1.l , CouleurWindow2.l
  
  PosX   =   WindowX(#LDVM)
  PosY   =   WindowY(#LDVM)
  
  If Flag = 0
    CouleurWindow1 = PxlcolorWindow(#LDVM, PosX + 14, posY + 84)
    CouleurWindow2 = PxlcolorWindow(#LDVM, PosX + WindowWidth(#LDVM)-7, posY + 36)
    If CouleurCible1 <> -1 And CouleurCible2 <> -1
      Flag +1
    EndIf 
  EndIf
  
  
  CouleurDesktop1 = PxlcolorDesktop(PosX + 14, posY + 84)
  CouleurDesktop2 = PxlcolorDesktop(PosX + WindowWidth(#LDVm)-7, posY + 36)
  
  
  If  CouleurDesktop1 <> CouleurWindow1  And  CouleurDesktop2 <> CouleurWindow2 And CouleurDesktop1 <> -1 And CouleurDesktop2 <> -1
    
    If creation = 0
      DestroyOWS() ; macro du closescreen()
      Creation = 1 ; Pour ne pas refermer la fenêtre vu qu'elle est déjà fermée
    EndIf
    Debug "FENETRE CACHEE"
  Else
    If Creation = 1
      CreaOWS() ; macro de l'openwindowsScreen()
      CreaSPRITE() ; Macro de La creation de sprite
      Creation = 0 ; Pour ne pas recréer la fenêtre et les sprites vu qu'ils sont crées
      SetActiveWindow(#ldvm)
    EndIf
    
    Debug "FENETRE VISIBLE"   
  EndIf
  
  ProcedureReturn Creation
  
EndProcedure  
Dernière modification par nico le lun. 09/déc./2013 23:46, modifié 5 fois.
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: ~ STREAM RADIO ~ v 0.6.4

Message par falsam »

j'espérer que la correction de Nico pourra satisfaire Ar-S.

Je propose une autre solution qui consiste à connaitre l'application qui est au premier plan et est ce que cette application recouvre totalement la radio. Cette solution utilise des API Windows

Code : Tout sélectionner

Enumeration
  #Mainform
  #ForeGroundApplication
EndEnumeration

Define.l Event, GEvent, TiEvent

Structure Process
  ExeName.s
  Left.i
  Top.i
  Width.i
  Height.i
EndStructure

Global NewList Applications.Process()

Procedure.s ListWindows(hwnd,Param)
  Protected Buffer.s
  
  If GetWindowLong_(hwnd, #GWL_EXSTYLE) ! #WS_EX_TOOLWINDOW And GetWindowLong_(hwnd, #GWL_STYLE) & #WS_VISIBLE
    Buffer = Space(250)
    
    GetWindowText_(hwnd, Buffer, 250)
    GetWindowRect_(hWnd, rc.RECT)
    
    If Buffer<>"" And Buffer <> "Démarrer"
      AddElement(Applications())
      Applications()\ExeName = Buffer
      Applications()\Left = rc\left
      Applications()\Top = rc\top
      Applications()\Width = rc\right - rc\left 
      Applications()\Height = rc\bottom - rc\top
    EndIf
    
  EndIf
  
EndProcedure

Procedure Open_MainForm()
  OpenWindow(#Mainform, 0, 0, 465, 80, "Ar-S Radio", #PB_Window_SystemMenu)
  TextGadget(#ForeGroundApplication, 10, 10, 400, 20, "")
  AddWindowTimer(#Mainform, 100, 500)
EndProcedure
  
Open_MainForm()

Repeat
  Event  = WaitWindowEvent(10)
  GEvent = EventGadget()
  TiEvent = EventTimer()
  
  Select Event
    Case #PB_Event_Timer
      Select TiEvent
        Case 100
          ClearList(Applications())
          EnumChildWindows_(FindWindow_("ToolbarWindow32",0),@ListWindows(),0)
          FirstElement(Applications())
          With Applications()
            SetGadgetText(#ForeGroundApplication, Str(n)+" - "+\ExeName + " Left: "+\Left + " Top: "+\Top + " Width: "+\Width + " Height: "+\Height)
            If \ExeName <> "Ar-S Radio"
              If WindowX(#Mainform)>=\Left And WindowX(#Mainform)<=\Left+\Width
                If WindowY(#Mainform)>=\Top And WindowY(#Mainform)<=\Top+\Height
                  MessageRequester("Information","J'ai été recouvert par "+\ExeName)
                EndIf
              EndIf
            EndIf
          EndWith
    
      EndSelect
        
    Case #PB_Event_CloseWindow
      End
  EndSelect
ForEver
Lancer ce code et cliquer ensuite sur une autre application. Vous verrez que le nom de l'application active s'affiche avec ses coordonnées. Essayez ensuite de recouvrir la fenêtre de test avec l'application active. Une boite d'information vous informera que la fenêtre de test a été recouverte.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Répondre