pour mettre à la Corbeille des fichers j'utilise sous VB5 l'API
l"shfileoperation".
'===========================
' API pour jeter à la corbeille un fichier
Private Type SHFILEOPSTRUCT
hwnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Boolean
hNameMappings As Long
lpszProgressTitle As String
End Type
'API utilisée pour jeter des fichiers à la corbeille
Private Declare Function SHFileOperation Lib "Shell32.dll" Alias
"SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
With FileOperation
.wFunc = FO_DELETE
.pFrom = Trim(txtDir.Text)
.fFlags = FOF_ALLOWUNDO
End With
' Ouvre la boite de dialogue 'Confirmation de la suppression du fichier'
lReturn = SHFileOperation(FileOperation)
'===========================
L'opération se déroule correctement que je réponde affirmativement ou
négativement à la boite de dialogue, mais lorsque la réponse est négative je
voudrais lancer une autre procédure. Le problème c'est que le flag
fAnyOperationsAborted se comporte bizarrement. Lorsqu'il est à TRUE (réponse
négative), il ne répond pas à l'instruction :
If FileOperation.fAnyOperationsAborted = True Then Exit Sub
... et les instructions sous cette ligne se déroulent.
Que puis-je faire pour résoudre ce problème ? Sur le Web il existe des
solutions mais pour VB.Net. Y en aurait-il une pour VB5 ?
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
Jean-marc
sergio wrote:
Bonsoir,
Hello,
pour mettre à la Corbeille des fichers j'utilise sous VB5 l'API l"shfileoperation".
...
L'opération se déroule correctement que je réponde affirmativement ou négativement à la boite de dialogue, mais lorsque la réponse est négative je voudrais lancer une autre procédure. Le problème c'est que le flag fAnyOperationsAborted se comporte bizarrement. Lorsqu'il est à TRUE (réponse négative), il ne répond pas à l'instruction : If FileOperation.fAnyOperationsAborted = True Then Exit Sub ... et les instructions sous cette ligne se déroulent.
Que puis-je faire pour résoudre ce problème ? Sur le Web il existe des
Le problème est ailleurs dans ton code, peut être un Exit sub oublié ou quelques chose comme cela car tout fonctionne bien.
j'ai copié/collé ton code, juste ajouté une petite fonction pour tester, comme ceci:
Private Sub Command1_Click() Dim lReturn As Long Dim FileOperation As SHFILEOPSTRUCT
With FileOperation .wFunc = FO_DELETE .pFrom = "c:test.dat" .fFlags = FOF_ALLOWUNDO End With ' Ouvre la boite de dialogue 'Confirmation de la suppression du fichier' lReturn = SHFileOperation(FileOperation)
If FileOperation.fAnyOperationsAborted Then MsgBox "annulé" ' faire ic un exit sub si nécessaire Else MsgBox "pas annulé" End If
End Sub
Et tout se comporte bien.
Peux tu essayer avec exactement cette fonction comme je l'indique ici ? Je suis (presque) sur que tu trouveras alors que l'erreur est ailleurs.
pour mettre à la Corbeille des fichers j'utilise sous VB5 l'API
l"shfileoperation".
...
L'opération se déroule correctement que je réponde affirmativement ou
négativement à la boite de dialogue, mais lorsque la réponse est
négative je voudrais lancer une autre procédure. Le problème c'est
que le flag fAnyOperationsAborted se comporte bizarrement. Lorsqu'il
est à TRUE (réponse négative), il ne répond pas à l'instruction :
If FileOperation.fAnyOperationsAborted = True Then Exit Sub
... et les instructions sous cette ligne se déroulent.
Que puis-je faire pour résoudre ce problème ? Sur le Web il existe des
Le problème est ailleurs dans ton code, peut être un Exit sub oublié
ou quelques chose comme cela car tout fonctionne bien.
j'ai copié/collé ton code, juste ajouté une petite fonction pour tester,
comme ceci:
Private Sub Command1_Click()
Dim lReturn As Long
Dim FileOperation As SHFILEOPSTRUCT
With FileOperation
.wFunc = FO_DELETE
.pFrom = "c:test.dat"
.fFlags = FOF_ALLOWUNDO
End With
' Ouvre la boite de dialogue 'Confirmation de la suppression du fichier'
lReturn = SHFileOperation(FileOperation)
If FileOperation.fAnyOperationsAborted Then
MsgBox "annulé"
' faire ic un exit sub si nécessaire
Else
MsgBox "pas annulé"
End If
End Sub
Et tout se comporte bien.
Peux tu essayer avec exactement cette fonction comme je l'indique
ici ? Je suis (presque) sur que tu trouveras alors que l'erreur est
ailleurs.
pour mettre à la Corbeille des fichers j'utilise sous VB5 l'API l"shfileoperation".
...
L'opération se déroule correctement que je réponde affirmativement ou négativement à la boite de dialogue, mais lorsque la réponse est négative je voudrais lancer une autre procédure. Le problème c'est que le flag fAnyOperationsAborted se comporte bizarrement. Lorsqu'il est à TRUE (réponse négative), il ne répond pas à l'instruction : If FileOperation.fAnyOperationsAborted = True Then Exit Sub ... et les instructions sous cette ligne se déroulent.
Que puis-je faire pour résoudre ce problème ? Sur le Web il existe des
Le problème est ailleurs dans ton code, peut être un Exit sub oublié ou quelques chose comme cela car tout fonctionne bien.
j'ai copié/collé ton code, juste ajouté une petite fonction pour tester, comme ceci:
Private Sub Command1_Click() Dim lReturn As Long Dim FileOperation As SHFILEOPSTRUCT
With FileOperation .wFunc = FO_DELETE .pFrom = "c:test.dat" .fFlags = FOF_ALLOWUNDO End With ' Ouvre la boite de dialogue 'Confirmation de la suppression du fichier' lReturn = SHFileOperation(FileOperation)
If FileOperation.fAnyOperationsAborted Then MsgBox "annulé" ' faire ic un exit sub si nécessaire Else MsgBox "pas annulé" End If
End Sub
Et tout se comporte bien.
Peux tu essayer avec exactement cette fonction comme je l'indique ici ? Je suis (presque) sur que tu trouveras alors que l'erreur est ailleurs.
Ca y est trouvé, j'ai trouvé le mystère. Il fallait écrire : If FileOperation.fAnyOperationsAborted Then Exit Sub
et non pas : If FileOperation.fAnyOperationsAborted = True Then Exit Sub
Merci beaucoup pour votre aide et bonne soirée. Serge
"Jean-marc" wrote:
sergio wrote: > Bonsoir,
Hello,
> pour mettre à la Corbeille des fichers j'utilise sous VB5 l'API > l"shfileoperation".
....
> L'opération se déroule correctement que je réponde affirmativement ou > négativement à la boite de dialogue, mais lorsque la réponse est > négative je voudrais lancer une autre procédure. Le problème c'est > que le flag fAnyOperationsAborted se comporte bizarrement. Lorsqu'il > est à TRUE (réponse négative), il ne répond pas à l'instruction : > If FileOperation.fAnyOperationsAborted = True Then Exit Sub > ... et les instructions sous cette ligne se déroulent. > > Que puis-je faire pour résoudre ce problème ? Sur le Web il existe des
Le problème est ailleurs dans ton code, peut être un Exit sub oublié ou quelques chose comme cela car tout fonctionne bien.
j'ai copié/collé ton code, juste ajouté une petite fonction pour tester, comme ceci:
Private Sub Command1_Click() Dim lReturn As Long Dim FileOperation As SHFILEOPSTRUCT
With FileOperation .wFunc = FO_DELETE .pFrom = "c:test.dat" .fFlags = FOF_ALLOWUNDO End With ' Ouvre la boite de dialogue 'Confirmation de la suppression du fichier' lReturn = SHFileOperation(FileOperation)
If FileOperation.fAnyOperationsAborted Then MsgBox "annulé" ' faire ic un exit sub si nécessaire Else MsgBox "pas annulé" End If
End Sub
Et tout se comporte bien.
Peux tu essayer avec exactement cette fonction comme je l'indique ici ? Je suis (presque) sur que tu trouveras alors que l'erreur est ailleurs.
Ca y est trouvé, j'ai trouvé le mystère.
Il fallait écrire :
If FileOperation.fAnyOperationsAborted Then Exit Sub
et non pas :
If FileOperation.fAnyOperationsAborted = True Then Exit Sub
Merci beaucoup pour votre aide et bonne soirée.
Serge
"Jean-marc" wrote:
sergio wrote:
> Bonsoir,
Hello,
> pour mettre à la Corbeille des fichers j'utilise sous VB5 l'API
> l"shfileoperation".
....
> L'opération se déroule correctement que je réponde affirmativement ou
> négativement à la boite de dialogue, mais lorsque la réponse est
> négative je voudrais lancer une autre procédure. Le problème c'est
> que le flag fAnyOperationsAborted se comporte bizarrement. Lorsqu'il
> est à TRUE (réponse négative), il ne répond pas à l'instruction :
> If FileOperation.fAnyOperationsAborted = True Then Exit Sub
> ... et les instructions sous cette ligne se déroulent.
>
> Que puis-je faire pour résoudre ce problème ? Sur le Web il existe des
Le problème est ailleurs dans ton code, peut être un Exit sub oublié
ou quelques chose comme cela car tout fonctionne bien.
j'ai copié/collé ton code, juste ajouté une petite fonction pour tester,
comme ceci:
Private Sub Command1_Click()
Dim lReturn As Long
Dim FileOperation As SHFILEOPSTRUCT
With FileOperation
.wFunc = FO_DELETE
.pFrom = "c:test.dat"
.fFlags = FOF_ALLOWUNDO
End With
' Ouvre la boite de dialogue 'Confirmation de la suppression du fichier'
lReturn = SHFileOperation(FileOperation)
If FileOperation.fAnyOperationsAborted Then
MsgBox "annulé"
' faire ic un exit sub si nécessaire
Else
MsgBox "pas annulé"
End If
End Sub
Et tout se comporte bien.
Peux tu essayer avec exactement cette fonction comme je l'indique
ici ? Je suis (presque) sur que tu trouveras alors que l'erreur est
ailleurs.
Ca y est trouvé, j'ai trouvé le mystère. Il fallait écrire : If FileOperation.fAnyOperationsAborted Then Exit Sub
et non pas : If FileOperation.fAnyOperationsAborted = True Then Exit Sub
Merci beaucoup pour votre aide et bonne soirée. Serge
"Jean-marc" wrote:
sergio wrote: > Bonsoir,
Hello,
> pour mettre à la Corbeille des fichers j'utilise sous VB5 l'API > l"shfileoperation".
....
> L'opération se déroule correctement que je réponde affirmativement ou > négativement à la boite de dialogue, mais lorsque la réponse est > négative je voudrais lancer une autre procédure. Le problème c'est > que le flag fAnyOperationsAborted se comporte bizarrement. Lorsqu'il > est à TRUE (réponse négative), il ne répond pas à l'instruction : > If FileOperation.fAnyOperationsAborted = True Then Exit Sub > ... et les instructions sous cette ligne se déroulent. > > Que puis-je faire pour résoudre ce problème ? Sur le Web il existe des
Le problème est ailleurs dans ton code, peut être un Exit sub oublié ou quelques chose comme cela car tout fonctionne bien.
j'ai copié/collé ton code, juste ajouté une petite fonction pour tester, comme ceci:
Private Sub Command1_Click() Dim lReturn As Long Dim FileOperation As SHFILEOPSTRUCT
With FileOperation .wFunc = FO_DELETE .pFrom = "c:test.dat" .fFlags = FOF_ALLOWUNDO End With ' Ouvre la boite de dialogue 'Confirmation de la suppression du fichier' lReturn = SHFileOperation(FileOperation)
If FileOperation.fAnyOperationsAborted Then MsgBox "annulé" ' faire ic un exit sub si nécessaire Else MsgBox "pas annulé" End If
End Sub
Et tout se comporte bien.
Peux tu essayer avec exactement cette fonction comme je l'indique ici ? Je suis (presque) sur que tu trouveras alors que l'erreur est ailleurs.