Re: Windev et le copier-coller de fichiers

Posté par Gilles_QC le 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

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=5&topic_id=1183&post_id=25586