Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
Nous sommes occupés à réaliser une application de gestion de travaux.
Certaines demandes de travaux contiennent des annexes fournies par les clients.
Ces annexes peuvent être de tout type (voire sujet de la discution)
Les PATHs des fichiers annexés sont sauvés dans la DB.
Comment faire pour visualiser (lecture seuelement) ces annexes lorsque l'utilisateur veut y jeter un oeil?
Merci de votre aide
Jcc
Hors ligne
La fonction FileOpen ouvre les fichiers en lecture seule par défaut.
Hors ligne
Bonjour,
Un Run( fichier ) est l'équivalent d'un double-clic sur le fichier dans l'explorateur, çàd que l'application associée à l'extension sera utilisée pour ouvrir le fichier.
Il faudrait toutefois mettre au préalable les fichiers en lecture seule.
Hors ligne
foon a écrit:
La fonction FileOpen ouvre les fichiers en lecture seule par défaut.
À mon avis, FileOpen() sur un fichier doc, pdf ou jpg ce n'est pas ce que recherche l'OP
À moins qu'il ne soit en train de coder un viewer en PB (et là ça peut m'intéresser)
Plus sérieusement, je pense qu'il peut creuser du côté de ShellExecute ? Il est possible de rendre les fichiers read-only après Excel, Word et consorts sont capables de les ouvrir et ils précisent même dans la bare de titre que c'est en lecture seule.
Hors ligne
seki a écrit:
À mon avis, FileOpen() sur un fichier doc, pdf ou jpg ce n'est pas ce que recherche l'OP
Effectivement...
Note que je n'ai pas été jusqu'à parler de DDE
Hors ligne
erasorz a écrit:
Un Run( fichier ) est l'équivalent d'un double-clic sur le fichier dans l'explorateur, çàd que l'application associée à l'extension sera utilisée pour ouvrir le fichier.
ou pas...
je viens de tester, ça ne marche pas, pourtant il me semblait déjà avoir fait ça...
en gros il faut faire un Run("winword fichier.doc") par exemple, donc une commande selon le type de programme
Hors ligne
Avec ShellExecute() de l'API windows on a le même comportement que le double-clic sur le fichier dans l'explorateur de fichiers.
Du coup si une application est associée à cette extension de fichier, pas besoin de la connaître et de la spécifier dans le run(), surtout que l'utilisateur peut avoir choisi une autre que celle à laquelle tu penses (par exemple : il a Foxit Reader et pas Acrobat pour lire les pdf).
//FUNCTION ULONG ShellExecute( ulong hwdn, string operation, string file, string params, string parth, long nShowCmd) Library "shell32.dll" Alias For "ShellExecuteW" ulong lul_ret constant int SW_SHOWNORMAL = 1 constant int SE_ERR_NOASSOC = 31 lul_ret = ShellExecute( 0, "open", "c:\temp\toto.doc", "", "", SW_SHOWNORMAL ) choose case lul_ret case SE_ERR_NOASSOC messagebox("error", "Il n'y a pas d'application associée à ce fichier", Exclamation!, OK!) case else //... end choose
Hors ligne
En plus, sous les dernières versions de Windows, certaines options de sécurité peuvent bloquer l'appel aux programmes si l'utilisateur n'a pas les bons droits. Ce n'est pas impossible que le run soit inopérant dans ces cas là.
Hors ligne
seki a écrit:
Avec ShellExecute() de l'API windows on a le même comportement que le double-clic sur le fichier dans l'explorateur de fichiers.
Voilaaaaaaaaaa !
Hors ligne