Permettez-moi de reposer la m=EAme question sur l'API=20
MoveFileEx
Voici le squelette de code
Sub DeplacerFichier()
Dim lRet&
Source =3D "C:\Temporary\MyEXE.exe"
Destination =3D "C:\Temporary\Temp1\MyEXE.exe"
lRet =3D MoveFileEx(Source, Destination, _
MOVEFILE_REPLACE_EXISTING Or =20
MOVEFILE_DELAY_UNTIL_REBOOT)
If lRet =3D 0 Then
Err.Raise Err.LastDllError, , FormatMessage
(Err.LastDllError)
End If
End Sub
FormatMessage est une m=E9thode pour renvoyer le message=20
correspondant =E0 Err.LastDllError
A l'ex=E9cution, j'ai l'erreur suivante:
87: Param=E8tre incorrect
Quelqu'un pourrait me dire o=F9 est le param=E8tre incorrect?
S'il vous aider moi.
Merci de poster les réponses au groupe afin d'en faire profiter à tous "Assi" wrote in message news:5dc201c3e5cb$0806a1c0$ Bonjour,
Permettez-moi de reposer la même question sur l'API MoveFileEx Voici le squelette de code Sub DeplacerFichier() Dim lRet& Source = "C:TemporaryMyEXE.exe" Destination = "C:TemporaryTemp1MyEXE.exe" lRet = MoveFileEx(Source, Destination, _ MOVEFILE_REPLACE_EXISTING Or MOVEFILE_DELAY_UNTIL_REBOOT) If lRet = 0 Then Err.Raise Err.LastDllError, , FormatMessage (Err.LastDllError) End If End Sub
FormatMessage est une méthode pour renvoyer le message correspondant à Err.LastDllError A l'exécution, j'ai l'erreur suivante: 87: Paramètre incorrect
Quelqu'un pourrait me dire où est le paramètre incorrect? S'il vous aider moi.
Je vous remercie d'avance ASSI
PS: Je travaille en W2K
Salut Assi! :O)
peut-on voir la déclaration de l'API et des constantes?
Merci de poster les réponses au groupe afin d'en faire profiter à tous
"Assi" <assi@discussions.microsoft.com> wrote in message
news:5dc201c3e5cb$0806a1c0$a001280a@phx.gbl...
Bonjour,
Permettez-moi de reposer la même question sur l'API
MoveFileEx
Voici le squelette de code
Sub DeplacerFichier()
Dim lRet&
Source = "C:TemporaryMyEXE.exe"
Destination = "C:TemporaryTemp1MyEXE.exe"
lRet = MoveFileEx(Source, Destination, _
MOVEFILE_REPLACE_EXISTING Or
MOVEFILE_DELAY_UNTIL_REBOOT)
If lRet = 0 Then
Err.Raise Err.LastDllError, , FormatMessage
(Err.LastDllError)
End If
End Sub
FormatMessage est une méthode pour renvoyer le message
correspondant à Err.LastDllError
A l'exécution, j'ai l'erreur suivante:
87: Paramètre incorrect
Quelqu'un pourrait me dire où est le paramètre incorrect?
S'il vous aider moi.
Merci de poster les réponses au groupe afin d'en faire profiter à tous "Assi" wrote in message news:5dc201c3e5cb$0806a1c0$ Bonjour,
Permettez-moi de reposer la même question sur l'API MoveFileEx Voici le squelette de code Sub DeplacerFichier() Dim lRet& Source = "C:TemporaryMyEXE.exe" Destination = "C:TemporaryTemp1MyEXE.exe" lRet = MoveFileEx(Source, Destination, _ MOVEFILE_REPLACE_EXISTING Or MOVEFILE_DELAY_UNTIL_REBOOT) If lRet = 0 Then Err.Raise Err.LastDllError, , FormatMessage (Err.LastDllError) End If End Sub
FormatMessage est une méthode pour renvoyer le message correspondant à Err.LastDllError A l'exécution, j'ai l'erreur suivante: 87: Paramètre incorrect
Quelqu'un pourrait me dire où est le paramètre incorrect? S'il vous aider moi.
Je vous remercie d'avance ASSI
PS: Je travaille en W2K
Zoury
ReSalut!
Voici un exemple fonctionnel.. si ça peux t'aider.. '*** ' Module1 Option Explicit
Private Const MOVEFILE_REPLACE_EXISTING As Long = &H1 Private Const MOVEFILE_DELAY_UNTIL_REBOOT As Long = &H4
Private Declare Function MoveFileEx _ Lib "kernel32" _ Alias "MoveFileExA" _ ( _ ByVal lpExistingFileName As String, _ ByVal lpNewFileName As String, _ ByVal dwFlags As Long _ ) As Long
Private Sub Main() If (MoveFileEx("c:test.txt", "c:testtest.txt", _ MOVEFILE_REPLACE_EXISTING Or _ MOVEFILE_DELAY_UNTIL_REBOOT) = 0) Then Debug.Print FormatMessage(Err.LastDllError) End If End Sub '***
tu lances l'exécution et redémarre l'ordinateur.. au *redémarrage* le fichier c:test.txt se retrouve ici : c:testtest.txt
Merci de poster les réponses au groupe afin d'en faire profiter à tous
ReSalut!
Voici un exemple fonctionnel.. si ça peux t'aider..
'***
' Module1
Option Explicit
Private Const MOVEFILE_REPLACE_EXISTING As Long = &H1
Private Const MOVEFILE_DELAY_UNTIL_REBOOT As Long = &H4
Private Declare Function MoveFileEx _
Lib "kernel32" _
Alias "MoveFileExA" _
( _
ByVal lpExistingFileName As String, _
ByVal lpNewFileName As String, _
ByVal dwFlags As Long _
) As Long
Private Sub Main()
If (MoveFileEx("c:test.txt", "c:testtest.txt", _
MOVEFILE_REPLACE_EXISTING Or _
MOVEFILE_DELAY_UNTIL_REBOOT) = 0) Then
Debug.Print FormatMessage(Err.LastDllError)
End If
End Sub
'***
tu lances l'exécution et redémarre l'ordinateur..
au *redémarrage* le fichier c:test.txt se retrouve ici : c:testtest.txt
Voici un exemple fonctionnel.. si ça peux t'aider.. '*** ' Module1 Option Explicit
Private Const MOVEFILE_REPLACE_EXISTING As Long = &H1 Private Const MOVEFILE_DELAY_UNTIL_REBOOT As Long = &H4
Private Declare Function MoveFileEx _ Lib "kernel32" _ Alias "MoveFileExA" _ ( _ ByVal lpExistingFileName As String, _ ByVal lpNewFileName As String, _ ByVal dwFlags As Long _ ) As Long
Private Sub Main() If (MoveFileEx("c:test.txt", "c:testtest.txt", _ MOVEFILE_REPLACE_EXISTING Or _ MOVEFILE_DELAY_UNTIL_REBOOT) = 0) Then Debug.Print FormatMessage(Err.LastDllError) End If End Sub '***
tu lances l'exécution et redémarre l'ordinateur.. au *redémarrage* le fichier c:test.txt se retrouve ici : c:testtest.txt
Merci de poster les réponses au groupe afin d'en faire profiter à tous
Assi
Bonjour,
Merci de votre réponse. Les déclarations APIs et constantes sont les mêmes que les votres. Ce matin, j'ai pu obtenir une réponse c'est-à-dire avoir comme code retour de MoveFileEx 1, ce qui signifie pas d'erreur. Mais après redémarrage de Windows, toujours pas fichier copié dans le nouveau dossier et ce, malgré plusieurs tentatives. Faut-il se loger en tant qu'admin pour l'exécuter? D'avance merci Assi
-----Message d'origine----- ReSalut!
Voici un exemple fonctionnel.. si ça peux t'aider.. '*** ' Module1 Option Explicit
Private Const MOVEFILE_REPLACE_EXISTING As Long = &H1 Private Const MOVEFILE_DELAY_UNTIL_REBOOT As Long = &H4
Private Declare Function MoveFileEx _ Lib "kernel32" _ Alias "MoveFileExA" _ ( _ ByVal lpExistingFileName As String, _ ByVal lpNewFileName As String, _ ByVal dwFlags As Long _ ) As Long
Private Sub Main() If (MoveFileEx("c:test.txt", "c:testtest.txt", _ MOVEFILE_REPLACE_EXISTING Or _ MOVEFILE_DELAY_UNTIL_REBOOT) = 0) Then Debug.Print FormatMessage(Err.LastDllError) End If End Sub '***
tu lances l'exécution et redémarre l'ordinateur.. au *redémarrage* le fichier c:test.txt se retrouve ici :
Merci de poster les réponses au groupe afin d'en faire
profiter à tous
.
Bonjour,
Merci de votre réponse.
Les déclarations APIs et constantes sont les mêmes que les
votres. Ce matin, j'ai pu obtenir une réponse c'est-à-dire
avoir comme code retour de MoveFileEx 1, ce qui signifie
pas d'erreur. Mais après redémarrage de Windows, toujours
pas fichier copié dans le nouveau dossier et ce, malgré
plusieurs tentatives.
Faut-il se loger en tant qu'admin pour l'exécuter?
D'avance merci
Assi
-----Message d'origine-----
ReSalut!
Voici un exemple fonctionnel.. si ça peux t'aider..
'***
' Module1
Option Explicit
Private Const MOVEFILE_REPLACE_EXISTING As Long = &H1
Private Const MOVEFILE_DELAY_UNTIL_REBOOT As Long = &H4
Private Declare Function MoveFileEx _
Lib "kernel32" _
Alias "MoveFileExA" _
( _
ByVal lpExistingFileName As String, _
ByVal lpNewFileName As String, _
ByVal dwFlags As Long _
) As Long
Private Sub Main()
If (MoveFileEx("c:test.txt", "c:testtest.txt", _
MOVEFILE_REPLACE_EXISTING Or _
MOVEFILE_DELAY_UNTIL_REBOOT) = 0) Then
Debug.Print FormatMessage(Err.LastDllError)
End If
End Sub
'***
tu lances l'exécution et redémarre l'ordinateur..
au *redémarrage* le fichier c:test.txt se retrouve ici :
Merci de votre réponse. Les déclarations APIs et constantes sont les mêmes que les votres. Ce matin, j'ai pu obtenir une réponse c'est-à-dire avoir comme code retour de MoveFileEx 1, ce qui signifie pas d'erreur. Mais après redémarrage de Windows, toujours pas fichier copié dans le nouveau dossier et ce, malgré plusieurs tentatives. Faut-il se loger en tant qu'admin pour l'exécuter? D'avance merci Assi
-----Message d'origine----- ReSalut!
Voici un exemple fonctionnel.. si ça peux t'aider.. '*** ' Module1 Option Explicit
Private Const MOVEFILE_REPLACE_EXISTING As Long = &H1 Private Const MOVEFILE_DELAY_UNTIL_REBOOT As Long = &H4
Private Declare Function MoveFileEx _ Lib "kernel32" _ Alias "MoveFileExA" _ ( _ ByVal lpExistingFileName As String, _ ByVal lpNewFileName As String, _ ByVal dwFlags As Long _ ) As Long
Private Sub Main() If (MoveFileEx("c:test.txt", "c:testtest.txt", _ MOVEFILE_REPLACE_EXISTING Or _ MOVEFILE_DELAY_UNTIL_REBOOT) = 0) Then Debug.Print FormatMessage(Err.LastDllError) End If End Sub '***
tu lances l'exécution et redémarre l'ordinateur.. au *redémarrage* le fichier c:test.txt se retrouve ici :
Merci de poster les réponses au groupe afin d'en faire
profiter à tous
.
Zoury
Salut Assi! :O)
Faut-il se loger en tant qu'admin pour l'exécuter?
pas nécessairement en tant qu'admin, mais tu dois avoir les droits nécessaires..
tu dois avoir les droits d'accès en écriture sur cette clé de registre : HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerPendingFileRenameOperations
ainsi que l'accès en écriture sur le disque où tu envois la copie et l'accès en lecture sur le fichier copié..
note aussi que le répertoire destination **doit exister** sinon la copie ne fonctionne pas et tu ne reçois pas d'erreur..... ton erreur se trouve peut-être là.. ;O)
Merci de poster les réponses au groupe afin d'en faire profiter à tous
Salut Assi! :O)
Faut-il se loger en tant qu'admin pour l'exécuter?
pas nécessairement en tant qu'admin, mais tu dois avoir les droits
nécessaires..
tu dois avoir les droits d'accès en écriture sur cette clé de registre :
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession
ManagerPendingFileRenameOperations
ainsi que l'accès en écriture sur le disque où tu envois la copie et l'accès
en lecture sur le fichier copié..
note aussi que le répertoire destination **doit exister** sinon la copie ne
fonctionne pas et tu ne reçois pas d'erreur..... ton erreur se trouve
peut-être là.. ;O)
Faut-il se loger en tant qu'admin pour l'exécuter?
pas nécessairement en tant qu'admin, mais tu dois avoir les droits nécessaires..
tu dois avoir les droits d'accès en écriture sur cette clé de registre : HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerPendingFileRenameOperations
ainsi que l'accès en écriture sur le disque où tu envois la copie et l'accès en lecture sur le fichier copié..
note aussi que le répertoire destination **doit exister** sinon la copie ne fonctionne pas et tu ne reçois pas d'erreur..... ton erreur se trouve peut-être là.. ;O)