OVH Cloud OVH Cloud

Handle

1 réponse
Avatar
Pierre Gard
Bonjour,

Pour utiliser l'API suivante

Declare Function GetFileTime Lib "kernel32" Alias "GetFileTime" (ByVal hFile
As Long, lpCreationTime As FILETIME, lpLastAccessTime As FILETIME,
lpLastWriteTime As FILETIME) As Long

j'ai besoin du handle sur le fichier dont je veux connaitre la date de
création. Comment puis je créer un handle d'un fichier sur mon disque dur
sans en changer les dates de création etc..

D'avance merci

--

Meilleures salutations
Pierre-André Gard
PharmaSoft Sàrl

1 réponse

Avatar
Ledev
Pierre Gard wrote:
Bonjour,



Bonjour,

Pour utiliser l'API suivante

Declare Function GetFileTime Lib "kernel32" Alias "GetFileTime"
(ByVal hFile As Long, lpCreationTime As FILETIME, lpLastAccessTime As
FILETIME, lpLastWriteTime As FILETIME) As Long

j'ai besoin du handle sur le fichier dont je veux connaitre la date de
création. Comment puis je créer un handle d'un fichier sur mon
disque dur sans en changer les dates de création etc..



Regarde du coté de l'api CreateFile

Voici un exemple tirer de l'API Guide qui fait ce que tu cherche à faire:
'This project needs a Common Dialog box, named CDBox.

' (To add the Common Dialog Box to your tools menu, go to
Project->Components (or press CTRL-T)

' and select Microsoft Common Dialog control)

Private Type FILETIME

dwLowDateTime As Long

dwHighDateTime As Long

End Type

Private Type SYSTEMTIME

wYear As Integer

wMonth As Integer

wDayOfWeek As Integer

wDay As Integer

wHour As Integer

wMinute As Integer

wSecond As Integer

wMilliseconds As Integer

End Type

Private Const GENERIC_WRITE = &H40000000

Private Const OPEN_EXISTING = 3

Private Const FILE_SHARE_READ = &H1

Private Const FILE_SHARE_WRITE = &H2

Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA"
(ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal
dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal
dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal
hTemplateFile As Long) As Long

Private Declare Function SetFileTime Lib "kernel32" (ByVal hFile As Long,
lpCreationTime As FILETIME, lpLastAccessTime As FILETIME, lpLastWriteTime As
FILETIME) As Long

Private Declare Function SystemTimeToFileTime Lib "kernel32" (lpSystemTime
As SYSTEMTIME, lpFileTime As FILETIME) As Long

Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long)
As Long

Private Declare Function LocalFileTimeToFileTime Lib "kernel32"
(lpLocalFileTime As FILETIME, lpFileTime As FILETIME) As Long

Private Sub Form_Load()

'KPD-Team 1998

'URL: http://www.allapi.net/

'

Dim m_Date As Date, lngHandle As Long

Dim udtFileTime As FILETIME

Dim udtLocalTime As FILETIME

Dim udtSystemTime As SYSTEMTIME

m_Date = Format(Now, "DD-MM-YY")

'Set the dialog's title

CDBox.DialogTitle = "Choose a file ..."

'Set the dialog's filter

CDBox.Filter = "All Files (*.*)|*.*"

'Show the 'Open File'-dialog

CDBox.ShowOpen

udtSystemTime.wYear = Year(m_Date)

udtSystemTime.wMonth = Month(m_Date)

udtSystemTime.wDay = Day(m_Date)

udtSystemTime.wDayOfWeek = WeekDay(m_Date) - 1

udtSystemTime.wHour = Hour(m_Date)

udtSystemTime.wMinute = Minute(m_Date)

udtSystemTime.wSecond = Second(m_Date)

udtSystemTime.wMilliseconds = 0

' convert system time to local time

SystemTimeToFileTime udtSystemTime, udtLocalTime

' convert local time to GMT

LocalFileTimeToFileTime udtLocalTime, udtFileTime

' open the file to get the filehandle

lngHandle = CreateFile(CDBox.Filename, GENERIC_WRITE, FILE_SHARE_READ Or
FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0, 0)

' change date/time property of the file

SetFileTime lngHandle, udtFileTime, udtFileTime, udtFileTime

' close the handle

CloseHandle lngHandle

MsgBox "The date of the file '" + CDBox.Filename + "' has been changed to" +
Str$(m_Date), vbInformation + vbOKOnly, App.Title

End Sub



a+