Guest User

Untitled

a guest
Jan 12th, 2013
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Option Explicit
  2.  
  3. Private Const OPEN_EXISTING = &H3
  4. Private Const FILE_SHARE_READ = &H1
  5. Private Const FILE_SHARE_WRITE = &H2
  6. Private Const GENERIC_WRITE = &H40000000
  7.  
  8. Public Type FileTime
  9.     dwLowDateTime As Long
  10.     dwHighDateTime As Long
  11. End Type
  12.  
  13. Public Type SYSTEMTIME
  14.     wYear As Integer
  15.     wMonth As Integer
  16.     wDayOfWeek As Integer
  17.     wDay As Integer
  18.     wHour As Integer
  19.     wMinute As Integer
  20.     wSecond As Integer
  21.     wMilliseconds As Integer
  22. End Type
  23.  
  24. Private Declare Function LocalFileTimeToFileTime Lib "kernel32" _
  25.     (lpLocalFileTime As FileTime, _
  26.      lpFileTime As FileTime) As Long
  27.  
  28. Private Declare Function SystemTimeToFileTime Lib "kernel32" _
  29.     (lpSystemTime As SYSTEMTIME, _
  30.     lpFileTime As FileTime) As Long
  31.  
  32. Private Declare Function CreateFileW Lib "kernel32.dll" _
  33.     (ByVal lpFileName As Long, _
  34.     ByVal dwDesiredAccess As Long, _
  35.     ByVal dwShareMode As Long, _
  36.     ByVal lpSecurityAttributes As Long, _
  37.     ByVal dwCreationDisposition As Long, _
  38.     ByVal dwFlagsAndAttributes As Long, _
  39.     ByVal hTemplateFile As Long) As Long
  40.  
  41. Private Declare Function CloseHandle Lib "kernel32" _
  42.    (ByVal hObject As Long) As Long
  43.  
  44. Private Declare Function SetFileTimeCreate Lib "kernel32" Alias "SetFileTime" _
  45.    (ByVal hFile As Long, _
  46.     CreateTime As FileTime, _
  47.     ByVal LastAccessTime As Long, _
  48.     LastModified As FileTime) As Long
  49.  
  50. '=======================================================================================================================
  51. '=======================================================================================================================
  52. '=======================================================================================================================
  53.  
  54. Function Settimestamp(FileName, FileDateTime)
  55.  
  56. Dim FileHandle As Long
  57. Dim Res As Long
  58. Dim ErrNum As Long
  59. Dim ErrText As String
  60. Dim tFileTime As FileTime
  61. Dim tLocalTime As FileTime
  62. Dim tSystemTime As SYSTEMTIME
  63.  
  64. With tSystemTime
  65.     .wYear = Year(FileDateTime)
  66.     .wMonth = Month(FileDateTime)
  67.     .wDay = Day(FileDateTime)
  68.     .wDayOfWeek = Weekday(FileDateTime) - 1
  69.     .wHour = Hour(FileDateTime)
  70.     .wMinute = Minute(FileDateTime)
  71.     .wSecond = Second(FileDateTime)
  72. End With
  73.  
  74. Res = SystemTimeToFileTime(lpSystemTime:=tSystemTime, lpFileTime:=tLocalTime)
  75. Res = LocalFileTimeToFileTime(lpLocalFileTime:=tLocalTime, lpFileTime:=tFileTime)
  76.  
  77. FileHandle = CreateFileW(lpFileName:=StrPtr(FileName), _
  78.                         dwDesiredAccess:=GENERIC_WRITE, _
  79.                         dwShareMode:=FILE_SHARE_READ Or FILE_SHARE_WRITE, _
  80.                         lpSecurityAttributes:=ByVal 0&, _
  81.                         dwCreationDisposition:=OPEN_EXISTING, _
  82.                         dwFlagsAndAttributes:=0, _
  83.                         hTemplateFile:=0)
  84.  
  85. Res = SetFileTimeCreate( _
  86.             hFile:=FileHandle, _
  87.             CreateTime:=tFileTime, _
  88.             LastAccessTime:=0&, _
  89.             LastModified:=tFileTime)
  90.  
  91. CloseHandle FileHandle
  92.  
  93. End Function
Advertisement
Add Comment
Please, Sign In to add comment