Droopy's Lib

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

ça serait bien un delay(0) pour ne pas monopoliser trop de resources dans la procédure waituntilwindowisclosed().
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

WaitUntilWindowIsClosed chez moi ne monopolise aucune ressouce

Code : Tout sélectionner

ProcedureDLL WaitUntilWindowIsClosed()
  Repeat
  Until WaitWindowEvent()= #PB_Event_CloseWindow
  ProcedureReturn 1
EndProcedure
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

Oui, mais un delay serait bien je pense quand même. Chez moi, au bout d'un certain temps, si j'utilise ta fonction, ça rame bcp... mais je dois être le seul, encore une fois.
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

WaitWindowEvent attend un évènement, ce qui évite d'ajouter un delay

c'est louche 8O
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

Salut
Ca serait bien d'ajouter une fonction RunOnce un peu différente :
Le contrôle s'effectue sur le nom du fichier et non pas sur le nom de la fenêtre. :wink:
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

J'ai pas compris ta question 8O
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

il veut dire que si deux fenetres ont le même nom le runonce peut poser problème... (conflit avec d'atres applis)

Dri
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

Oui voilà.
Et moi j'aurai besoin d'un RunOnce sur le programm en lui même car le titre de ma fenêtre principale change sans arrêt...
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

suggestion :
tu énumères les process en cours, tu tu récupère le nom de leur exécutable, s'il correspond au tien tu gères en conséquence

mais je sais pas si c'est faisable...

Dri ;)
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

OK j'avais pensé que tu voulais pouvoir lancer ton executable au démarrage de windows 1 seule fois, en fait tu veux empêcher l'exécution du programme une seconde fois.

J'ai ce code que j'ai prévu d'inclure dans la prochaine version de la DroopyLib

Code : Tout sélectionner

; Author : netmaestro
; End the Program if another instance is found !!

Procedure RunOnlyOneInstance()
*a = CreateSemaphore_(null,0,1,GetProgramName()) 
If *a <> 0 And GetLastError_()= #ERROR_ALREADY_EXISTS 
  CloseHandle_(*a) 
  End
EndIf
EndProcedure


;/ Test
; RunOnlyOneInstance()
; OpenWindow(0, 100, 200, 195, 260, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget, "PureBasic Window")
; WaitUntilWindowIsClosed()
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

Version 1.24 disponible
  • BlockInputW98
    FormatDisk
    GetGadgetIdentifier
    GetPixelColor
    GetUserLanguage
    GuidAPI
    MonitorPower
    RealDriveType
    RunOnlyOneInstance
    RunProgramAtStartup
    URLDownloadToFile
    WMI

    LDB ( DATABASE FUNCTIONS )
    LdbGetPointer
    LdbSetPointer
    LdbCountField
    LdbOpen
    LdbCreate
    LdbCountRecord
    LdbRead
    LdbWrite
    LdbAddRecord
    LdbDeleteRecord
    LdbSaveDatabase
    LdbCloseDatabase
    LDBSetFieldName
    LdbGetFieldName
    LdbPreviousRecord
    LdbNextRecord
    LdbInsertRecord
    LdbAddField
    LdbDeleteField
    LdbSearchInit
    LdbSearch
    LdbSortNum
    LdbSortAlpha

    TOOLTIP FUNCTIONS
    ToolTipAdd
    ToolTipRemove
    ToolTipChange
    ToolTipShow
    ToolTipHide
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

Droopy, ya déjà une fct API qui s'appèle URLDownloadToFile_().
Ca risque pas de poser des conflits ? :?
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

bah y'a un _ de différence nan ?
et pis y'a des chances que sa fonction ne soit qu'un appel vers celle de l'api... là où ca devient intéressant c'est si son CHM est bien documenté sur la fonction!!

Dri
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

C'est en effet cette fonction de l'API qui est utilisée, mais ensuite le cache est vidé ( au cas ou le cache serait corrompus )

Code : Tout sélectionner

; Author : BackupUser
  ProcedureDLL URLDownloadToFile(Url.s,File.s)
  retour=URLDownloadToFile_(0, Url, File, 0, 0)
  DeleteUrlCacheEntry_(Url)
  If retour=0 : retour=1 : Else : retour=0 : EndIf
  ProcedureReturn retour
EndProcedure
Il n'y a aucun risque de conflit car il y a le _ de différence
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

Non, je n'ai rien dis :roll:
Il me semblait avoir eu un conflit de ce style une fois, mais j'ai dû réver (je ne retrouve plus le bug...)
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Répondre