Fermer programme en arriére-plan

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Marc56
Messages : 2198
Inscription : sam. 08/févr./2014 15:19

Re: Fermer programme en arriére-plan

Message par Marc56 »

Dans mon desk, la fenêtre d'info en bas à gauche est en pure pb, aucune API, mais j'ai renoncé à l'effet de transparence.

Pour la mettre en bas à droite c'est facile: il suffit de déduire sa taille des infos données par desktopheight et destktopwidth.

J'ai fais une procédure et je lui passe le texte, la couleur et le timeout.
Pour le timeout: un eventimer lui est passé dès l'ouverture.
L'utilisateur peut la refermer en cliquant n'importe où dessus.
(la fenetre de fin d chrono je ne lui met pas de timoute au cas où l'utilisateur soit parti)

Simple.
:)

Il y a une api qui permet de déplacer une fenetre sans bordure (cherche dans l'historique du forum fr et us: déplacer une fenetre sans bordure).
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Fermer programme en arriére-plan

Message par venom »

Oui mais avec la demo les API c'est mort :wink:






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Marc56
Messages : 2198
Inscription : sam. 08/févr./2014 15:19

Re: Fermer programme en arriére-plan

Message par Marc56 »

C'est le moment d'offrir cadeau de noël à Fred: acheter une licence :)
79€ pour une licence à vie de ce produit, c'est rien comparé à VisualStudio, Delphi etc :wink:
Avatar de l’utilisateur
JohnJohnsonSHERMAN
Messages : 648
Inscription : dim. 13/déc./2015 11:05
Localisation : Allez, cherche...
Contact :

Re: Fermer programme en arriére-plan

Message par JohnJohnsonSHERMAN »

Et sinon, comment je fais sans api? (a part acheter une license)?
J'ai essayé avec un canvas, mais le probléme est que, mettons que je me place au centre du canvas, je déplace et hop, le coin supérieur gauche de la fenetre vient sous le curseur, au lieu de suivre les mouvements de la souris... je sais pas si c'est assez clair comme explication...
"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.

CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
  • Windows 10 x64 - PB 5.61 x64
  • Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Fermer programme en arriére-plan

Message par Ar-S »

sans api c'est mort avec la souris, au pire tu peux la déplacer avec les flèches via les raccourcis clavier en pb
Avec api c'est tout simple

Code : Tout sélectionner

Case #WM_LBUTTONDOWN ; on recupere l'evenement d'un clic souris gauche
            SendMessage_(WindowID(#LDVM), #WM_NCLBUTTONDOWN, #HTCAPTION, 0) ; Suivi de la fenetre avec la souris
            
Moralité : achète pb, il en vaut la peine
~~~~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
JohnJohnsonSHERMAN
Messages : 648
Inscription : dim. 13/déc./2015 11:05
Localisation : Allez, cherche...
Contact :

Re: Fermer programme en arriére-plan

Message par JohnJohnsonSHERMAN »

C´est peut etre possible en fait... j´ai trouvé un truc intéressant : un Code de microdevweb ! http://www.purebasic.fr/french/viewtopi ... =6&t=15696
Bon, la partie Vctordrawing, je jette, m´intéresse pas, de méme pour ce qui a rapport avec son horloge (soit dit au passage, c´est pas un des skins du gadget horloge de chez windows?), par contre, la boucle principale m´intéresse... Alors qu´en pensez-vous?

EDIT : euh je réve ou t´est encore sur les forums pb a 1h du mat´ Ar-S??? :)
"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.

CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
  • Windows 10 x64 - PB 5.61 x64
  • Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
Avatar de l’utilisateur
JohnJohnsonSHERMAN
Messages : 648
Inscription : dim. 13/déc./2015 11:05
Localisation : Allez, cherche...
Contact :

Re: Fermer programme en arriére-plan

Message par JohnJohnsonSHERMAN »

En attendant, je suis satisfait de ce qui a été fait!! Voici le code a l'heure actuelle :

Code : Tout sélectionner

If LoadImage(1,"D:\Documents\Programmation\Shermavigator\Play.ICO")
Else
  MessageRequester("Erreur","L'icone ne peut etre chargée !")
EndIf
UsePNGImageDecoder()
LoadImage(2,"D:\Images\Non classées\open.png")
ResizeImage(2,20,15,#PB_Image_Smooth)

If InitSound() = 0
  MessageRequester("Erreur", "Chef, on peut pas initialiser le systéme de son!!",  0)
  End
EndIf

Enumeration
  #icone
  #pause
  #stop
  #open
  #adresse
  #lecture
  #hide
  #quit
  #quitter
  #stat
  #volume
  #deplace
EndEnumeration

LoadImage(#quitter,"D:\Images\Non classées\fermer.png")
OpenWindow(0,11,10,300,150,"SherPlay",  #PB_Window_BorderLess | #PB_Window_ScreenCentered | #PB_Window_BorderLess)
SetWindowColor(0,RGBA(40,80,200,0))
status=#True
lect=#True
progress=0
long=0
Global adresse$ =""
AddSysTrayIcon(#icone,WindowID(0),ImageID(1))
SysTrayIconToolTip(#icone,"SherPlay. Lire de la musique.")
ButtonGadget(#pause, 50, 10, 100, 25, "Pause", #PB_Button_Toggle)
ButtonGadget(#hide, 190, 120, 100, 25, "Masquer")
ButtonImageGadget(#quit, 270,10,20,20,ImageID(#quitter))
TextGadget(#adresse, 10, 50, 270, 20, "Aucune musique chargée.")
SetGadgetColor(#adresse,#PB_Gadget_BackColor,RGB(40,80,200))
TrackBarGadget(#volume, 10, 90, 280, 20, 0, 100, #PB_TrackBar_Ticks)
SetGadgetColor(#volume,#PB_Gadget_BackColor,RGB(40,80,200))
SetGadgetState(#volume,70)
;TextGadget(#stat,10,90,150,20,"NULL")
ButtonImageGadget(#open, 10, 10, 30, 25, ImageID(2))
ButtonGadget(#deplace, 10, 120, 70, 25, "Déplacer")




Repeat
  Event=WaitWindowEvent(5)
  
  Select Event
    Case  #PB_Event_Gadget
      
      Select EventGadget()
          
        Case #deplace ;ca c'est de la merde
          ResizeWindow(0,DesktopMouseX(),DesktopMouseY(),#PB_Ignore,#PB_Ignore)
          
        Case #open ;l'utilisateur ouvre un fichier
          adresse$=OpenFileRequester("Choisissez une musique","D:\Musique\","Tous| *.*",0)
          i=1
          ;Obtention du nom du fichier
          While  Left(souschaine.s,1)<>"\"
            souschaine.s=Right(adresse$,i)
            i+1
          Wend
          
          souschaine=Right(souschaine,Len(souschaine)-1)
          adresse1$=souschaine
          
          SetGadgetText(#adresse,adresse1$)
          SysTrayIconToolTip(#Icone,"SherPlay. Lecture de "+adresse1$+Chr(10)+"Cliquez pour faire réapparaitre la fenetre.")
          ;Chargement et lecture du fichier
          If LoadSound(0, adresse$)
            long=SoundLength(0)
            PlaySound(0, #PB_Sound_Loop)
          Else
            MessageRequester("Merde!","Y'a un probléme. on n'arrive pas a lire ce son... Peut être que c'est pas un format supporté? Seul le .wav est actuellement supporté",0)
          EndIf
          ProgressBarGadget(#lecture, 10, 70, 280, 10, 0, long, #PB_ProgressBar_Smooth)
          SetGadgetColor(#lecture,#PB_Gadget_FrontColor,RGB(20,50,250))
          SetGadgetColor(#lecture,#PB_Gadget_BackColor,RGB(250,230,200))
          
        Case #pause
          If lect=#True
            PauseSound(0)
            lect=#False
          Else
            ResumeSound(0)
            lect=#True
          EndIf
          
        Case #quit
          End
          
        Case #hide
          HideWindow(0,#True)
          
      EndSelect
      
    Case #PB_Event_SysTray    ;Gérer le clic sur l'icone, si la fenétre est visible, la masquer, et inversement
      Select EventGadget()
        Case #icone 
          If status=#True
            HideWindow(0,#True)
            status=#False
          Else
            HideWindow(0,#False)
            status=#True
          EndIf
          
      EndSelect
  EndSelect
  If long <> 0
    SetGadgetState(#lecture,GetSoundPosition(0))
    ;SetGadgetText(#stat, Str(GetSoundPosition(0)))
    SoundVolume(0,GetGadgetState(#volume))
  EndIf  
ForEver
Reste plus qu'a essayer de la rendre déplacable...
Voila, merci a tous!!
"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.

CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
  • Windows 10 x64 - PB 5.61 x64
  • Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
Répondre