1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
PROCEDURE detectionfolderTABLET()
struct_FILE_NOTIFY_INFORMATION est une structure
NextEntryOffset est un entier
Action est un entier
FileNameLength est un entier
FIN
FILE_ACTION_ADDED est un entier = 0x00000001
FILE_ACTION_REMOVED est un entier = 0x00000002
FILE_ACTION_MODIFIED est un entier = 0x00000003
FILE_ACTION_RENAMED_OLD_NAME est un entier = 0x00000004
FILE_ACTION_RENAMED_NEW_NAME est un entier = 0x00000005
struFile est un struct_FILE_NOTIFY_INFORMATION
FILE_LIST_DIRECTORY est un entier = 0x0001
FILE_SHARE_READ est un entier = 0x00000001
FILE_SHARE_WRITE est un entier = 0x00000002
FILE_SHARE_DELETE est un entier = 0x00000004
FILE_FLAG_BACKUP_SEMANTICS est un entier = 0x02000000
FILE_NOTIFY_CHANGE_FILE_NAME est un entier = 0x00000001
OPEN_EXISTING est un entier = 3
INVALID_HANDLE_VALUE est un entier = -1
iHandle est un entier
bContinuer est un booléen
bBuffer est un Buffer sur 1024
strFile est une chaîne UNICODE sur 1024
strFileVide est une chaîne UNICODE sur 1024
iNull_1 est un entier
iNull_2 est un entier
iNull_3 est un entier
iPos est un entier
strRep est une chaîne = INILit("connections", "TabletPath", "", INIRoot+"connections.ini")
iHandle = API("Kernel32","CreateFileA",&strRep,FILE_LIST_DIRECTORY,OUBinaire(FILE_SHARE_READ,FILE_SHARE_WRITE),Null,OPEN_EXISTING,FILE_FLAG_BACKUP_SEMANTICS,Null)
SI PAS iHandle ALORS Erreur(ErreurInfo())
SI iHandle <> INVALID_HANDLE_VALUE ALORS
bContinuer = Vrai
TANTQUE bContinuer
iPos = 0
test est un entier = API("Kernel32","ReadDirectoryChangesW",iHandle,&bBuffer,1024,Vrai,FILE_NOTIFY_CHANGE_FILE_NAME,&iNull_1,&iNull_2,&iNull_3)
SI test <> 0 ALORS
TANTQUE Vrai
Transfert(&strFile,&strFileVide,1024)
Transfert(&struFile,&bBuffer+iPos,Dimension(struFile))
SELON struFile:Action
CAS FILE_ACTION_ADDED:
//Trace("Ajout")
Transfert(&strFile,&bBuffer+iPos+Dimension(struFile),struFile:FileNameLength)
SI fExtraitChemin(strFile,fExtension)~=".pdf" ALORS
fCopieFichier(strRep+strFile,fRepExe()+"\"+fExtraitChemin(strFile,fRépertoire+fFichier+fExtension))
fSupprime(strRep+strFile,frVersCorbeille)
SI fRepTaille(strRep+"PDFs")=0 ALORS fRepSupprime(strRep+"PDFs",frVersCorbeille)
FIN
SI fExtraitChemin(strFile,fExtension)~=".log" ALORS fDéplaceFichier(strRep+strFile,fRepExe()+"\log\"+strFile)
CAS FILE_ACTION_REMOVED:
//Trace("Delete")
Transfert(&strFile,&bBuffer+iPos+Dimension(struFile),struFile:FileNameLength)
CAS FILE_ACTION_MODIFIED:
//Trace("Modif")
Transfert(&strFile,&bBuffer+iPos+Dimension(struFile),struFile:FileNameLength)
CAS FILE_ACTION_RENAMED_OLD_NAME:
//Trace("Ren old")
Transfert(&strFile,&bBuffer+iPos+Dimension(struFile),struFile:FileNameLength)
CAS FILE_ACTION_RENAMED_NEW_NAME:
//Trace("Ren new")
Transfert(&strFile,&bBuffer+iPos+Dimension(struFile),struFile:FileNameLength)
AUTRE CAS
//Trace("rien")
FIN
//Trace(struFile:FileNameLength)
//Trace(UnicodeVersAnsi(strFile))
SI struFile:NextEntryOffset <> 0 ALORS
iPos += struFile:NextEntryOffset
SINON
SORTIR
FIN
FIN
SINON
Erreur()
FIN
// bcontinuer = ouinon("continuer?")
FIN
API("Kernel32","CloseHandle",iHandle)
SINON
Erreur()
FIN |
Partager