23.10.2009, 14:45 | #1 |
Участник
|
Кто пользовал WinApi::fileSetTime
Не работает сабж.. Думаю дело в преобразовании в binary я пробовал так:
X++: binary A; int TimeCreate = timeNow(); A = new binary(TimeCreate); X++: A.dWord(0,TimeCreate);
__________________
Это магия |
|
23.10.2009, 14:49 | #2 |
Ищущий знания...
|
посмотрите метод fileTimeToSystemTime класса WniApi, может чем то поможет
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
23.10.2009, 17:31 | #3 |
Участник
|
Не помогло!
Пробовал так: X++: A = new Binary(16); A.dWord(0, timeNow()); B = new Binary(16); B.dWord(0, timeNow()); C = new Binary(16); C.dWord(0, timeNow()); winApi::setFileTime(iFileHandel, A, B, C)
__________________
Это магия |
|
23.10.2009, 18:04 | #4 |
Ищущий знания...
|
Вот нашел пример.... в классе WinApi нашел метод setFileTime:
X++: client server static boolean setFileTime(int hFile, Binary create, Binary access, Binary modified) { DLL _winApiDLL = new DLL('KERNEL32'); DLLFunction _setFileTime = new DLLFunction(_winApiDLL, 'SetFileTime'); _setFileTime.returns(ExtTypes::DWord); _setFileTime.arg(ExtTypes::DWord); _setFileTime.arg(ExtTypes::Pointer); _setFileTime.arg(ExtTypes::Pointer); _setFileTime.arg(ExtTypes::Pointer); if (_setFileTime.call(hFile, create, access, modified)) { return true; } return false; } X++: #winapi client static boolean setFileTimeServer2Client(Filename serverFile, Filename clientFile) { int serverhFile = WinAPI::createFileServer(serverFile, #OPEN_EXISTING); int clienthFile; Binary createdServer, accessedServer, modifiedServer; Binary createdClient = new Binary(#Offset8); Binary accessedClient = new Binary(#Offset8); Binary modifiedClient = new Binary(#Offset8); boolean ret = false; if (serverhFile) { createdServer = WinAPI::getFileTimeServer(serverhFile, 0); accessedServer = WinAPI::getFileTimeServer(serverhFile, 1); modifiedServer = WinAPI::getFileTimeServer(serverhFile, 2); WinAPI::closeHandle(serverhfile); if (createdServer && accessedServer && modifiedServer) { createdClient.dWord(#offset0, createdServer.dWord(#offset0)); createdClient.dWord(#offset4, createdServer.dWord(#offset4)); accessedClient.dWord(#offset0, accessedServer.dWord(#offset0)); accessedClient.dWord(#offset4, accessedServer.dWord(#offset4)); modifiedClient.dWord(#offset0, modifiedServer.dWord(#offset0)); modifiedClient.dWord(#offset4, modifiedServer.dWord(#offset4)); clienthFile = WinAPI::createFile(clientFile, #OPEN_EXISTING, #GENERIC_WRITE); if (clientHFile) { ret = WinAPI::setFileTime(clientHFile, createdClient, accessedClient, modifiedClient); // вот этот вызов WinAPI::closeHandle(clienthfile); } } } return ret; }
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|