Re: Windev et le copier-coller de fichiers |
Sujet: Re: Windev et le copier-coller de fichiers par Gilles_QC sur 16/11/2010 16:45:32 Apres bien des recherches, j'ai reussie a convertir un bout de code VB et j'ai reussie a extraire la liste des fichiers et repertoires qui serait dans le presse Papier: //Taken from : // http://www.developerfusion.com/code/224/copy-files-to-clipboard/ //And converted to Windev by Gilles Levasseur (gilles.l@usa.net) //Determines if the items in the Clipboards are files SI PAS PressePapierFormat(CF_HDROP) ALORS RETOUR //Declaration of the variables FunctionResult is boolean // C Type:BOOL hWndNewOwner is entier système // C Type:HWND HandleFileList is entier système // C Type:HANDLE uFormat is entier sans signe // C Type:UINT uFormat = CF_HDROP NbrFiles is entier sans signe // C Type:UINT VAR_2_UINT is entier sans signe = 0xFFFFFFFF // C Type:UINT VAR_3_LPSTR is chaîne = "" // C Type:LPSTR, is a string address, you can also specify a string directly VAR_4_UINT is entier sans signe = 0 // C Type:UINT lo_FileList est une chaîne lo_FileCounter est un entier = 0 lo_FolderList est une chaîne lo_FolderCounter est une entier= 0 lo_FolderName est une chaîne lo_Filename est une chaîne fixe sur 260 lo_NewFileName est une chaîne //Open The Clipboard FunctionResult=API("USER32","OpenClipboard",hWndNewOwner) //FunctionResult = True if the Windows clipboard is avaliable SI PAS FunctionResult ALORS RETOUR // Get handle to Dropped Filelist data, and number of files HandleFileList=API("USER32","GetClipboardData",uFormat) NbrFiles=API("SHELL32","DragQueryFileA",HandleFileList,VAR_2_UINT,VAR_3_LPSTR,VAR_4_UINT) // Retrieve each filename in Dropped Filelist. POUR i = 0 A NbrFiles -1 API("SHELL32","DragQueryFileA",HandleFileList,i,&lo_Filename,Taille(lo_Filename)) lo_NewFileName = SansEspace(fExtraitChemin(lo_Filename, fDisque + fRépertoire + fFichier + fExtension)) SI fFichierExiste(lo_NewFileName) ALORS lo_FileList += lo_NewFileName+RC lo_FileCounter++ SINON SI fRépertoireExiste(lo_NewFileName) ALORS lo_FolderList += lo_NewFileName+RC lo_FolderCounter++ FIN FIN // Clean up API("USER32","CloseClipboard") Trace("Files"+RC+lo_FileList) Trace("Folders"+RC+lo_FolderList) J'espere que ca aidera quelqu'un Bien a vous. Gilles |