IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

ReadDirectoryChangesW qui plante mon appli [WD17]


Sujet :

WinDev

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    425
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 425
    Points : 129
    Points
    129
    Par défaut ReadDirectoryChangesW qui plante mon appli
    Bonjour,

    J'ai besoin de vos lumières :

    Quand j'exécute cette procédure, pas à pas, via le débogeur, je n'ai aucun problème.
    Mais quand je le lance normallement, je reçois une erreur comme quoi l'exécutable à du fermer (ou même le lanceur mode test à dû s'arreter).

    Ce cas se présente quand je copie plusieurs fichiers en un geste dans le folder de destination.

    Je n'arrive pas à trouver pourquoi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    425
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 425
    Points : 129
    Points
    129
    Par défaut
    le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SI fRepTaille(strRep+"PDFs")=0 ALORS fRepSupprime(strRep+"PDFs",frVersCorbeille)
    posait problème. Il fallait ajouter frRécursif

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ecran bleu qui plante mon pc
    Par lilia_dream dans le forum Windows XP
    Réponses: 22
    Dernier message: 09/06/2009, 13h10
  2. pourquoi ma boucle fait planté mon appli ?
    Par zerros dans le forum Windows Forms
    Réponses: 5
    Dernier message: 02/05/2009, 16h21
  3. CArray RemoveAll plante mon appli
    Par damdam78 dans le forum MFC
    Réponses: 5
    Dernier message: 10/09/2008, 11h46
  4. fonction qui plante mon programme
    Par étoile de mer dans le forum Débuter
    Réponses: 21
    Dernier message: 22/08/2008, 15h08
  5. delete[] plante mon appli !
    Par Dauphin dans le forum C++Builder
    Réponses: 8
    Dernier message: 10/12/2005, 20h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo