Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Salut les gens,
Je suis en train d'essayer de faire un petit outil qui scan certains répertoires de plusieurs serveurs à la recherche de fichiers d'un certain type.
Pour le moment, j'utilise le DirList d'une listebox pour afficher les fichiers mais je voulais savoir s'il y avait quelque chose d'autre surtout que je voudrais afficher sous forme de tableau : --------------------------------------------
| Repertoire 1 | Repertoire 2 | Repertoire 3 |
----------|---------------------------------------------
Serveur 1 | nb_fichiers | nb_fichiers | nb_fichiers |
Serveur 2 | nb_fichiers | nb_fichiers | nb_fichiers |
Serveur 3 | nb_fichiers | nb_fichiers | nb_fichiers |
--------------------------------------------------------
De plus, j'aimerais que le scan se fasse toutes les x minutes mais là, je connais pas du tout tout ce qui touche au temps.
Et enfin, le must serait de pouvoir réduire en icône le programme et qu'il s'ouvre ou m'affiche un petit message dès qu'il trouve un fichier mais je ne sais pas si c'est possible.
Quelqu'un a t-il des solutions, des idées, des conseils, des liens, des grigris ou n'importe quoi d'autre :D
Dernière modification par Steph (25-10-2007 10:42:39)
Hors ligne
pour le temps, il y a le timer... ca ne suffit pas ?
et pour la fenetre, tu ne peux pas la faire en invisible ?
et faire apparaitre une fenetre d'affichage de message (qui reste 15 secondes, et se referme) ?
Hors ligne
Le timer doit suffir, mais j'ai jamais utilisé donc je vais tester.
Pour le reste, je vais voir si j'arrive à faire ça.
Mici
Hors ligne
Tout est possible, mais vu ton score à "bubbles puzzle" je te répondrai pas.
Pour répondre à une des tes questions, tu peux mettre ta dirList invisible, puis la lire en powerscript afin de mettre tes données sous forme de tableaux.
Il y a un truc que je ne comprends pas dans ta question : vu le tableau que tu as dessiné, ça veut dire que chaque serveur a la même arborescences de répertoires ?
Hors ligne
Il a quoi mon score ? :D
shahin a écrit:
Il y a un truc que je ne comprends pas dans ta question : vu le tableau que tu as dessiné, ça veut dire que chaque serveur a la même arborescences de répertoires ?
A quelques détails près, oui
Pour la dirlist invisible, c'est ce que j'avais fait, mais je voulais juste savoir s'il y avait autre chose
Dernière modification par Steph (10-04-2007 14:32:57)
Hors ligne
Steph a écrit:
Pour la dirlist invisible, c'est ce que j'avais fait
Bien !
Steph a écrit:
mais je voulais juste savoir s'il y avait autre chose
Il y a les fonctions de l'API Windows : FindFirstFile, FindNextFile. Bref, autant rester avec la dirList.
Steph a écrit:
Il a quoi mon score ? :D
200 000 pts (deux cent mille points !). Pick, je crois qu'il faut le soumettre à un contrôle anti-dopage.
Hors ligne
pas grave, tant qu'il n'enleve pas tous mes scores...
Hors ligne
Steph a écrit:
Et enfin, le must serait de pouvoir réduire en icône le programme et qu'il s'ouvre ou m'affiche un petit message dès qu'il trouve un fichier mais je ne sais pas si c'est possible.
Tout est possible avec PowerBuilder, c'est notre postulat de base
Cliquer ici ->Building a systray icon
Hors ligne
Pour rechercher des fichiers, il y a les API FindFirstFile, FindNextFile, et FindClose (faut pas l'oublier celui-là, sinon les répertoires sont verrouillés tant que l'appli est ouverte).
Personnellement, j'aurais tendance à préférer ces API à l'objet DirList de PB, parce qu'elles permettent plus de chose au niveau filtrage, et ne rendent pas la manip de recherche de fichier dépendante d'un objet graphique.
Hors ligne
Autant pour moi Steve
C'est vrai que DirList est moins souple, mais dans le cas où il convient pourquoi se prendre la tête.
Heureux de constater que nous avons un roi de l'API Windows ici.
Hors ligne
shahin a écrit:
Steph a écrit:
Pour la dirlist invisible, c'est ce que j'avais fait
Bien !
Steph a écrit:
mais je voulais juste savoir s'il y avait autre chose
Il y a les fonctions de l'API Windows : FindFirstFile, FindNextFile. Bref, autant rester avec la dirList.
sinon y'a un peu de code ici : Liste des fichiers d'un dossier avec ou sans ListBox qui te permets de récupérer un tableau de fichiers avec beaucoup d'attributs dispos (nom, taille, dates, accès...) que tu peux facilement traiter.
Hors ligne
shahin a écrit:
Autant pour moi Steve
C'est vrai que DirList est moins souple, mais dans le cas où il convient pourquoi se prendre la tête.
Tu as raison, d'ailleurs il faut bien dire que ça m'a servi à l'occasion
Heureux de constater que nous avons un roi de l'API Windows ici.
Oulà, non, loin de là ! J'ai juste eu l'occasion d'en utiliser quelques unes. Il se trouve que la batterie des Find*File étaient les 1ères API dont j'ai eu besoin lorsque j'ai débuté en PB !
Hors ligne
Bon, j'ai enfin pu avancer sur mon petit programme
Alors, j'ai fait une petite fenêtre invisible qui s'affiche à chaque fois qu'il y a un nouveau fichier dans un de mes serveurs.
Et quand je clique sur la fenêtre, j'en ai une plus grande qui s'ouvre pour m'afficher le détail.
En revanche, maintenant, je voudrais savoir 2 choses :
1. Est-il possible de faire en sorte que ma petite fenêtre soit toujours au-dessus des autres lorsqu'elle est visible ?
2. Il faut que je trouve un moyen d'appeler ma petite fenêtre à n'importe quel moment afin de fermer mon programme parce que pour le moment, je suis obligé de passer par le gestionnaire de tâches
J'ai essayé le lien donné par shahin mais ça n'a pas marché, j'ai dû oublier quelque chose.
shahin a écrit:
Cliquer ici ->Building a systray icon
Hors ligne
pick ouic a écrit:
BringToTop
Ca met la fenêtre au-dessus des autres quand elle s'affiche mais elle y reste pas tout le temps.
Hors ligne
Steph a écrit:
pick ouic a écrit:
BringToTop
Ca met la fenêtre au-dessus des autres quand elle s'affiche mais elle y reste pas tout le temps.
mais si, avec une fenetre popup.
et quand tu le mets en visible...
w_pop.visible = true w_pop.bringtotop = true
Hors ligne
Oui, oui, c'est tout comme ça.
La fenêtre se met sur le devant de la scène quand elle devient visible mais si je clique sur un autre programme, elle se retrouve derrière mais je peux quand même la faire revenir en cliquant sur la barre windows comme un programme quelconque.
J'aurais voulu un truc comme le gestionnaire des tâches qui reste en premier plan avec la possibilité de continuer de travailler sur les autres applications. Mais bon, ça c'est déjà bien ;)
Plus qu'à trouver un moyen de l'ouvrir quand je veux
Merci
Hors ligne
SetPosition(TopMost!)
et la, ta fenetre restera toujours en avant !
Hors ligne
Ca à l'air de fonctionner.
Merci Pick, ça m'évite de chercher :D
Hors ligne
Nouveau petit souci.
Ce petit bout de code lancé depuis l'open d'une fenêtre MDI (donc pas d'objet visuel) me retourne toujours false.
ListBox lb_temp
lb_temp = Create listbox
b_retour = lb_temp.DirList(chemin, 0)
Est-ce que le DirList ne fonctionne pas sur une listbox créée par script ou j'ai oublié quelque chose ?
Merci
Hors ligne
Description
Populates a ListBox with a list of files. You can specify a path, a mask, and a file type to restrict the set of files displayed. If the window has an associated StaticText control, DirList can display the current drive and directory as well.
Controls
ListBox, DropDownListBox, PictureListBox, and DropDownPictureListBox controls
Syntax
listboxname.DirList ( filespec, filetype {, statictext } )
Argument Description
listboxname The name of the ListBox control you want to populate.
filespec A string whose value is the file pattern. This is usually a mask (for example, *.INI or *.TXT). If you include a path, it becomes the current drive and directory.
filetype An unsigned integer representing one or more types of files you want to list in the ListBox. Types are:· 0 - Read/write files· 1 - Read-only files· 2 - Hidden files· 4 - System files· 16 - Subdirectories· 32 - Archive (modified) files· 16384 - Drives· 32768 - Exclude read/write files from the listTo list several types, add the numbers associated with the types. For example, to list read-write files, subdirectories, and drives, use 0+16+16384 or 16400 for filetype.
statictext (optional) The name of the StaticText in which you want to display the current drive and directory.
Return value
Boolean. Returns true if the search path is valid so that the ListBox is populated or the list is empty. DirList returns false if the ListBox cannot be populated (for example, filespec is a file, not a directory, or specifies an invalid path). If any argument's value is null, DirList returns null.
Usage
You can call DirList when the window opens to populate the list initially. You should also call DirList in the script for the SelectionChanged event to repopulate the list box based on the new selection. (See the example in DirSelect.)
Alternatives Although DirList's features allow you to emulate the standard File Open and File Save windows, you can get the full functionality of these standard windows by calling GetFileOpenName and GetFileSaveName instead of DirList.
Hors ligne
Non mais là, je dois avoir un problème d'intelligence parce que je suis à la rue.
Mon chemin est correct et ce n'est pas un fichier.
En utilisant le même chemin dans une fenêtre normal et une vraie listbox, ça fonctionne.
Hors ligne
Tu as raison j'ai visiblement le meme probleme
Tu peux creer le control en non visible ...
Hors ligne
En mettant un objet sur la MDI, ça la rend toute grise et on ne peut plus afficher les autres fenêtres alors finalement, je me suis débrouillé autrement en gérant le bordel sur une fenêtre invisible.
Hors ligne