Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
Nous avons une application qui permet de prendre une photo via une webcam et de l'enregistrer dans la base de données, associée à un article.
Gros problème sous environnement CITRIX avec la dll GFLax, le programme semble garder en mémoire toujours la même photo :
Environnement : PowerBuilder 7.02, Windows XP / Windows 2000, SQLServer 2000
// CE USEROBJECT PERMET DE RECUPERER DES DONNEES DE LA SESSION CITRIX (via WFQuerySessionInformationW) uo_citrix = Create UO_WFApi ls_ClientName = uo_citrix.uf_getinfosession("clientname") // ON APPELLE ICI UN UTILITAIRE (DEVELOPPE EN PB) QUI GERE LA WEBCAM ET GENERE UN FICHIER C:\temp.jpg QUI CORRESPOND A LA PHOTO PRISE lole_appli = CREATE OleObject li_ret = lole_appli.ConnectToNewObject("WScript.Shell") li_ret = lole_appli.Run("psexec \\" + ls_clientname + " -i C:\webcam\webcam.exe", C_NORMAL, C_WAIT) lole_GflAx = CREATE OLEOBJECT li_ret = lole_GflAx.ConnectToNewObject("GflAx.GflAx") If fileexists("C:/temp.jpg") Then lole_GflAx.LoadBitmap("C:/temp.jpg") lblb_Pic = lole_GflAx.SendBinary() // ON A ESSAYE AVEC LA METHODE setBlob, même résultat // ICI ON AFFICHE LE BLOB ET MALHEUR ! LA PHOTO AFFICHEE NE CORRESPOND PAS AU FICHIER C:\temp.jpg End if Destroy lole_appli Destroy uo_ctirix Destroy lole_GflAx
Dernière modification par sbouvetJD (18-12-2007 18:30:02)
Hors ligne
pour charger le fichier image, tu as essayé avec un objet image pb ? histoire de voir si ca marche comme il faut ?
Hors ligne
Avant la méthode "SendBinary" j'ai mis un p_1.PictureName = "C:\temp.jpg". Et bien il m'affiche bien la première image, mais à la deuxième tentative, il se fige (alors que physiquement, le fichier a réellement changé dans l'explorateur). Je vais tenter avec la méthode FileRead (a priori on peut "lire" un objet bitmap dans un blob, alors une image de type jpeg ?). La suite après la pub.
Hors ligne
Tout bête ! Il suffisait de supprimer le fichier en fin de traitement...
uo_citrix = Create UO_WFApi ls_ClientName = uo_citrix.uf_getinfosession("clientname") lole_appli = CREATE OleObject li_ret = lole_appli.ConnectToNewObject("WScript.Shell") gp_msg_err_ole(li_ret, "WScript.Shell") li_ret = lole_appli.Run("psexec \\" + ls_clientname + " -i C:\webcam\webcam.exe", C_NORMAL, C_WAIT) lole_GflAx = CREATE OLEOBJECT li_ret = lole_GflAx.ConnectToNewObject("GflAx.GflAx") If FileExists("C:\temp.jpg") Then lole_GflAx.LoadBitmap("C:\temp.jpg") lblb_Pic = lole_GflAx.setBlob() FileDelete("C:\temp.jpg") End if Destroy uo_citrix Destroy lole_GflAx Destroy lole_appli
Hors ligne