attendre la fin d'un process avant de continuer code
7 réponses
Pascal
bonjour,
j'éfface sur le HDD un dossier je veux ensuite réinitialiser ma listView
en faisant :
With Me.ListView1
.ListItems.Clear
For i = 0 To Me.Dir1.ListCount - 1
s = Mid(Me.Dir1.List(i), InStrRev(Me.Dir1.List(i), "\") + 1)
.ListItems.Add , , s, 1
Next i
Nickel, le seul problème c'est que je retrouve le fichier effacer sur le
HDD, dans ma listView
le temps d'attente est trop court entre l'éffacement et le réaffichage
existe t-il une façon de contraindre XP à attendre la fin de ce process?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jacques93
Bonjour Pascal, Pascal a écrit :
bonjour, j'éfface sur le HDD un dossier je veux ensuite réinitialiser ma listView en faisant : With Me.ListView1 .ListItems.Clear For i = 0 To Me.Dir1.ListCount - 1 s = Mid(Me.Dir1.List(i), InStrRev(Me.Dir1.List(i), "") + 1) .ListItems.Add , , s, 1 Next i Nickel, le seul problème c'est que je retrouve le fichier effacer sur le HDD, dans ma listView le temps d'attente est trop court entre l'éffacement et le réaffichage existe t-il une façon de contraindre XP à attendre la fin de ce process?
Peut être en ajoutant :
Me.Dir1.Refresh
entre la suppression du dossier, et l'actualisation du Listview.
-- Cordialement,
Jacques.
Bonjour Pascal,
Pascal a écrit :
bonjour,
j'éfface sur le HDD un dossier je veux ensuite réinitialiser ma listView
en faisant :
With Me.ListView1
.ListItems.Clear
For i = 0 To Me.Dir1.ListCount - 1
s = Mid(Me.Dir1.List(i), InStrRev(Me.Dir1.List(i), "") + 1)
.ListItems.Add , , s, 1
Next i
Nickel, le seul problème c'est que je retrouve le fichier effacer sur le
HDD, dans ma listView
le temps d'attente est trop court entre l'éffacement et le réaffichage
existe t-il une façon de contraindre XP à attendre la fin de ce process?
Peut être en ajoutant :
Me.Dir1.Refresh
entre la suppression du dossier, et l'actualisation du Listview.
bonjour, j'éfface sur le HDD un dossier je veux ensuite réinitialiser ma listView en faisant : With Me.ListView1 .ListItems.Clear For i = 0 To Me.Dir1.ListCount - 1 s = Mid(Me.Dir1.List(i), InStrRev(Me.Dir1.List(i), "") + 1) .ListItems.Add , , s, 1 Next i Nickel, le seul problème c'est que je retrouve le fichier effacer sur le HDD, dans ma listView le temps d'attente est trop court entre l'éffacement et le réaffichage existe t-il une façon de contraindre XP à attendre la fin de ce process?
Peut être en ajoutant :
Me.Dir1.Refresh
entre la suppression du dossier, et l'actualisation du Listview.
-- Cordialement,
Jacques.
Pascal
Bonsoir jacques, malheureusement j'avais déjà essayé Me.dir1.refresh sans succès merci de l'idée Pascal
"Jacques93" a écrit dans le message de news:
Bonjour Pascal, Pascal a écrit : > bonjour, > j'éfface sur le HDD un dossier je veux ensuite réinitialiser ma listView > en faisant : > With Me.ListView1 > .ListItems.Clear > For i = 0 To Me.Dir1.ListCount - 1 > s = Mid(Me.Dir1.List(i), InStrRev(Me.Dir1.List(i), "") + 1) > .ListItems.Add , , s, 1 > Next i > Nickel, le seul problème c'est que je retrouve le fichier effacer sur le > HDD, dans ma listView > le temps d'attente est trop court entre l'éffacement et le réaffichage > existe t-il une façon de contraindre XP à attendre la fin de ce process? >
Peut être en ajoutant :
Me.Dir1.Refresh
entre la suppression du dossier, et l'actualisation du Listview.
-- Cordialement,
Jacques.
Bonsoir jacques,
malheureusement j'avais déjà essayé Me.dir1.refresh sans succès
merci de l'idée
Pascal
"Jacques93" <jacques@Nospam> a écrit dans le message de news:
euUUqKFGGHA.1396@TK2MSFTNGP11.phx.gbl...
Bonjour Pascal,
Pascal a écrit :
> bonjour,
> j'éfface sur le HDD un dossier je veux ensuite réinitialiser ma listView
> en faisant :
> With Me.ListView1
> .ListItems.Clear
> For i = 0 To Me.Dir1.ListCount - 1
> s = Mid(Me.Dir1.List(i), InStrRev(Me.Dir1.List(i), "") + 1)
> .ListItems.Add , , s, 1
> Next i
> Nickel, le seul problème c'est que je retrouve le fichier effacer sur le
> HDD, dans ma listView
> le temps d'attente est trop court entre l'éffacement et le réaffichage
> existe t-il une façon de contraindre XP à attendre la fin de ce process?
>
Peut être en ajoutant :
Me.Dir1.Refresh
entre la suppression du dossier, et l'actualisation du Listview.
Bonsoir jacques, malheureusement j'avais déjà essayé Me.dir1.refresh sans succès merci de l'idée Pascal
"Jacques93" a écrit dans le message de news:
Bonjour Pascal, Pascal a écrit : > bonjour, > j'éfface sur le HDD un dossier je veux ensuite réinitialiser ma listView > en faisant : > With Me.ListView1 > .ListItems.Clear > For i = 0 To Me.Dir1.ListCount - 1 > s = Mid(Me.Dir1.List(i), InStrRev(Me.Dir1.List(i), "") + 1) > .ListItems.Add , , s, 1 > Next i > Nickel, le seul problème c'est que je retrouve le fichier effacer sur le > HDD, dans ma listView > le temps d'attente est trop court entre l'éffacement et le réaffichage > existe t-il une façon de contraindre XP à attendre la fin de ce process? >
Peut être en ajoutant :
Me.Dir1.Refresh
entre la suppression du dossier, et l'actualisation du Listview.
-- Cordialement,
Jacques.
Pascal
bonsoir ai trouvé en changeant le flag de shfileoperation qui était à FOF_NoConfirmation par .fFlags = FOF_SIMPLEPROGRESS Or FOF_ALLOWUNDO cela fonctionne à merveille merci Pascal
"Jacques93" a écrit dans le message de news:
Bonjour Pascal, Pascal a écrit : > bonjour, > j'éfface sur le HDD un dossier je veux ensuite réinitialiser ma listView > en faisant : > With Me.ListView1 > .ListItems.Clear > For i = 0 To Me.Dir1.ListCount - 1 > s = Mid(Me.Dir1.List(i), InStrRev(Me.Dir1.List(i), "") + 1) > .ListItems.Add , , s, 1 > Next i > Nickel, le seul problème c'est que je retrouve le fichier effacer sur le > HDD, dans ma listView > le temps d'attente est trop court entre l'éffacement et le réaffichage > existe t-il une façon de contraindre XP à attendre la fin de ce process? >
Peut être en ajoutant :
Me.Dir1.Refresh
entre la suppression du dossier, et l'actualisation du Listview.
-- Cordialement,
Jacques.
bonsoir ai trouvé en changeant le flag
de shfileoperation qui était à FOF_NoConfirmation
par .fFlags = FOF_SIMPLEPROGRESS Or FOF_ALLOWUNDO
cela fonctionne à merveille
merci
Pascal
"Jacques93" <jacques@Nospam> a écrit dans le message de news:
euUUqKFGGHA.1396@TK2MSFTNGP11.phx.gbl...
Bonjour Pascal,
Pascal a écrit :
> bonjour,
> j'éfface sur le HDD un dossier je veux ensuite réinitialiser ma listView
> en faisant :
> With Me.ListView1
> .ListItems.Clear
> For i = 0 To Me.Dir1.ListCount - 1
> s = Mid(Me.Dir1.List(i), InStrRev(Me.Dir1.List(i), "") + 1)
> .ListItems.Add , , s, 1
> Next i
> Nickel, le seul problème c'est que je retrouve le fichier effacer sur le
> HDD, dans ma listView
> le temps d'attente est trop court entre l'éffacement et le réaffichage
> existe t-il une façon de contraindre XP à attendre la fin de ce process?
>
Peut être en ajoutant :
Me.Dir1.Refresh
entre la suppression du dossier, et l'actualisation du Listview.
bonsoir ai trouvé en changeant le flag de shfileoperation qui était à FOF_NoConfirmation par .fFlags = FOF_SIMPLEPROGRESS Or FOF_ALLOWUNDO cela fonctionne à merveille merci Pascal
"Jacques93" a écrit dans le message de news:
Bonjour Pascal, Pascal a écrit : > bonjour, > j'éfface sur le HDD un dossier je veux ensuite réinitialiser ma listView > en faisant : > With Me.ListView1 > .ListItems.Clear > For i = 0 To Me.Dir1.ListCount - 1 > s = Mid(Me.Dir1.List(i), InStrRev(Me.Dir1.List(i), "") + 1) > .ListItems.Add , , s, 1 > Next i > Nickel, le seul problème c'est que je retrouve le fichier effacer sur le > HDD, dans ma listView > le temps d'attente est trop court entre l'éffacement et le réaffichage > existe t-il une façon de contraindre XP à attendre la fin de ce process? >
Peut être en ajoutant :
Me.Dir1.Refresh
entre la suppression du dossier, et l'actualisation du Listview.
-- Cordialement,
Jacques.
Jacques93
Bonjour Pascal, Pascal a écrit :
bonsoir ai trouvé en changeant le flag de shfileoperation qui était à FOF_NoConfirmation par .fFlags = FOF_SIMPLEPROGRESS Or FOF_ALLOWUNDO cela fonctionne à merveille merci Pascal
Content pour toi :-) . Mais, par simple curiosité, pourquoi utilise tu l'API SHFileOperation ? Avant d'envoyer le message concernant le Refresh, j'ai testé, et c'est OK. Par contre, j'ai utilisé rmdir pour supprimer le répertoire.
-- Cordialement,
Jacques.
Bonjour Pascal,
Pascal a écrit :
bonsoir ai trouvé en changeant le flag
de shfileoperation qui était à FOF_NoConfirmation
par .fFlags = FOF_SIMPLEPROGRESS Or FOF_ALLOWUNDO
cela fonctionne à merveille
merci
Pascal
Content pour toi :-) . Mais, par simple curiosité, pourquoi utilise tu
l'API SHFileOperation ? Avant d'envoyer le message concernant le
Refresh, j'ai testé, et c'est OK. Par contre, j'ai utilisé rmdir pour
supprimer le répertoire.
bonsoir ai trouvé en changeant le flag de shfileoperation qui était à FOF_NoConfirmation par .fFlags = FOF_SIMPLEPROGRESS Or FOF_ALLOWUNDO cela fonctionne à merveille merci Pascal
Content pour toi :-) . Mais, par simple curiosité, pourquoi utilise tu l'API SHFileOperation ? Avant d'envoyer le message concernant le Refresh, j'ai testé, et c'est OK. Par contre, j'ai utilisé rmdir pour supprimer le répertoire.
-- Cordialement,
Jacques.
Pascal
bonsoir jacques voici ce que je faisais et qui ne fonctionnait pas Si je te comprend bien il serait plus simple d'utiliser rmdir? Bien à toi Pascal
========================================== Dim rep Dim i rep = MsgBox("vous avez choisi de supprimer :" & vbCrLf & _ Me.ListView1.ListItems(ListView1.selectedItem.Index) & vbCrLf & vbCrLf & _ "Vous confirmez ce choix ?", vbYesNo, "Suppression ") If rep = vbYes Then 'suppression '========= Dim RC As Long Dim FileOper As SHFILEOPSTRUCT With FileOper .hwnd = .hwnd .wFunc = FO_DELETE .pFrom = App.Path & DirectoryPrincipal & "" & _ Me.ListView1.ListItems(ListView1.selectedItem.Index) & vbNullChar & vbNullChar .fFlags = FOF_NOCONFIRMATION
RC = SHFileOperation(FileOper) End With
'======================================== 'Réinitialiser la liste des dossiers Me.Dir1.Path = App.Path & DirectoryPrincipal With Me.ListView1 .ListItems.Clear For i = 0 To Me.Dir1.ListCount - 1 s = Mid(Me.Dir1.List(i), InStrRev(Me.Dir1.List(i), "") + 1) .ListItems.Add , , s, 1 Next i
=================================================== > Content pour toi :-) . Mais, par simple curiosité, pourquoi utilise tu
l'API SHFileOperation ? Avant d'envoyer le message concernant le Refresh, j'ai testé, et c'est OK. Par contre, j'ai utilisé rmdir pour supprimer le répertoire.
bonsoir jacques
voici ce que je faisais et qui ne fonctionnait pas
Si je te comprend bien il serait plus simple d'utiliser rmdir?
Bien à toi
Pascal
========================================== Dim rep
Dim i
rep = MsgBox("vous avez choisi de supprimer :" & vbCrLf & _
Me.ListView1.ListItems(ListView1.selectedItem.Index) &
vbCrLf & vbCrLf & _
"Vous confirmez ce choix ?", vbYesNo, "Suppression ")
If rep = vbYes Then
'suppression
'========= Dim RC As Long
Dim FileOper As SHFILEOPSTRUCT
With FileOper
.hwnd = .hwnd
.wFunc = FO_DELETE
.pFrom = App.Path & DirectoryPrincipal & "" & _
Me.ListView1.ListItems(ListView1.selectedItem.Index)
& vbNullChar & vbNullChar
.fFlags = FOF_NOCONFIRMATION
RC = SHFileOperation(FileOper)
End With
'======================================== 'Réinitialiser la liste des dossiers
Me.Dir1.Path = App.Path & DirectoryPrincipal
With Me.ListView1
.ListItems.Clear
For i = 0 To Me.Dir1.ListCount - 1
s = Mid(Me.Dir1.List(i), InStrRev(Me.Dir1.List(i), "")
+ 1)
.ListItems.Add , , s, 1
Next i
=================================================== > Content pour toi :-) . Mais, par simple curiosité, pourquoi utilise tu
l'API SHFileOperation ? Avant d'envoyer le message concernant le
Refresh, j'ai testé, et c'est OK. Par contre, j'ai utilisé rmdir pour
supprimer le répertoire.
bonsoir jacques voici ce que je faisais et qui ne fonctionnait pas Si je te comprend bien il serait plus simple d'utiliser rmdir? Bien à toi Pascal
========================================== Dim rep Dim i rep = MsgBox("vous avez choisi de supprimer :" & vbCrLf & _ Me.ListView1.ListItems(ListView1.selectedItem.Index) & vbCrLf & vbCrLf & _ "Vous confirmez ce choix ?", vbYesNo, "Suppression ") If rep = vbYes Then 'suppression '========= Dim RC As Long Dim FileOper As SHFILEOPSTRUCT With FileOper .hwnd = .hwnd .wFunc = FO_DELETE .pFrom = App.Path & DirectoryPrincipal & "" & _ Me.ListView1.ListItems(ListView1.selectedItem.Index) & vbNullChar & vbNullChar .fFlags = FOF_NOCONFIRMATION
RC = SHFileOperation(FileOper) End With
'======================================== 'Réinitialiser la liste des dossiers Me.Dir1.Path = App.Path & DirectoryPrincipal With Me.ListView1 .ListItems.Clear For i = 0 To Me.Dir1.ListCount - 1 s = Mid(Me.Dir1.List(i), InStrRev(Me.Dir1.List(i), "") + 1) .ListItems.Add , , s, 1 Next i
=================================================== > Content pour toi :-) . Mais, par simple curiosité, pourquoi utilise tu
l'API SHFileOperation ? Avant d'envoyer le message concernant le Refresh, j'ai testé, et c'est OK. Par contre, j'ai utilisé rmdir pour supprimer le répertoire.
Pascal
REbonsoir Jacques j'ai testé, évidemment moins de code mais petit soucis en faisant comme ceci le problème est toujours présent entre le kill et le rmdir si j'insère un msgbox entre les deux là OK, suggestion? Bien à toi
Bonjour Pascal, Pascal a écrit : > bonsoir ai trouvé en changeant le flag > de shfileoperation qui était à FOF_NoConfirmation > par .fFlags = FOF_SIMPLEPROGRESS Or FOF_ALLOWUNDO > cela fonctionne à merveille > merci > Pascal
Content pour toi :-) . Mais, par simple curiosité, pourquoi utilise tu l'API SHFileOperation ? Avant d'envoyer le message concernant le Refresh, j'ai testé, et c'est OK. Par contre, j'ai utilisé rmdir pour supprimer le répertoire.
-- Cordialement,
Jacques.
REbonsoir Jacques
j'ai testé, évidemment moins de code mais petit soucis en faisant comme ceci
le problème est toujours présent entre le kill et le rmdir
si j'insère un msgbox entre les deux là OK, suggestion?
Bien à toi
"Jacques93" <jacques@Nospam> a écrit dans le message de news:
#4lDGaGGGHA.3036@tk2msftngp13.phx.gbl...
Bonjour Pascal,
Pascal a écrit :
> bonsoir ai trouvé en changeant le flag
> de shfileoperation qui était à FOF_NoConfirmation
> par .fFlags = FOF_SIMPLEPROGRESS Or FOF_ALLOWUNDO
> cela fonctionne à merveille
> merci
> Pascal
Content pour toi :-) . Mais, par simple curiosité, pourquoi utilise tu
l'API SHFileOperation ? Avant d'envoyer le message concernant le
Refresh, j'ai testé, et c'est OK. Par contre, j'ai utilisé rmdir pour
supprimer le répertoire.
REbonsoir Jacques j'ai testé, évidemment moins de code mais petit soucis en faisant comme ceci le problème est toujours présent entre le kill et le rmdir si j'insère un msgbox entre les deux là OK, suggestion? Bien à toi
Bonjour Pascal, Pascal a écrit : > bonsoir ai trouvé en changeant le flag > de shfileoperation qui était à FOF_NoConfirmation > par .fFlags = FOF_SIMPLEPROGRESS Or FOF_ALLOWUNDO > cela fonctionne à merveille > merci > Pascal
Content pour toi :-) . Mais, par simple curiosité, pourquoi utilise tu l'API SHFileOperation ? Avant d'envoyer le message concernant le Refresh, j'ai testé, et c'est OK. Par contre, j'ai utilisé rmdir pour supprimer le répertoire.
-- Cordialement,
Jacques.
Jacques93
Bonsoir Pascal, Pascal a écrit :
bonsoir jacques voici ce que je faisais et qui ne fonctionnait pas Si je te comprend bien il serait plus simple d'utiliser rmdir? Bien à toi Pascal
Non, pas sur, je me posais juste la question. Les API sont en général plus rapides, mais on en oublie parfois les fonctions de VB, donc faut faire comme Jean-Marc le fait très bien, des tests, des benchmarks, comparer les fonctionnalités, etc... A toi de jouer :-)
Et de juger de la méthode la plus appropriée, il n'y pas de règles absolues en ce domaine.
-- Cordialement,
Jacques.
Bonsoir Pascal,
Pascal a écrit :
bonsoir jacques
voici ce que je faisais et qui ne fonctionnait pas
Si je te comprend bien il serait plus simple d'utiliser rmdir?
Bien à toi
Pascal
Non, pas sur, je me posais juste la question. Les API sont en général
plus rapides, mais on en oublie parfois les fonctions de VB, donc faut
faire comme Jean-Marc le fait très bien, des tests, des benchmarks,
comparer les fonctionnalités, etc... A toi de jouer :-)
Et de juger de la méthode la plus appropriée, il n'y pas de règles
absolues en ce domaine.
bonsoir jacques voici ce que je faisais et qui ne fonctionnait pas Si je te comprend bien il serait plus simple d'utiliser rmdir? Bien à toi Pascal
Non, pas sur, je me posais juste la question. Les API sont en général plus rapides, mais on en oublie parfois les fonctions de VB, donc faut faire comme Jean-Marc le fait très bien, des tests, des benchmarks, comparer les fonctionnalités, etc... A toi de jouer :-)
Et de juger de la méthode la plus appropriée, il n'y pas de règles absolues en ce domaine.