#file #datetime #visual-c #registry #hex
#файл #дата и время #visual-c #реестр #hex
Вопрос:
Начиная с Windows 8, все включенные и отключенные приложения для запуска сохраняются в пути реестра HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows CurrentVersion Explorer StartupApproved с сохранением даты и времени в REG_BINARY data-type.
Отключенный элемент:
<Application Name> REG_BINARY 03 00 00 00 31 06 4b d7 ea 89 cf 01
Включен элемент:
<Application Name> REG_BINARY 02 00 00 00 00 00 00 00 00 00 00 00
эти шестнадцатеричные значения обозначают отключенные дату и время.
Я хочу знать, как преобразовать полученные шестнадцатеричные значения в дату и время?
также
аналогично, как преобразовать дату и время в шестнадцатеричные значения и сохранить?
Комментарии:
1. И это еще не все, первые 4 байта кодируют значение int32, которое в противном случае невозможно угадать. Последние 8 байтов — это FILETIME, преобразуйте с помощью FileTimeToSystemTime() . Избегайте использования недокументированных разделов реестра.
2. @HansPassant Мне удалось получить эти последние 8 байтов и успешно преобразовать в date amp; time, но я не смог преобразовать filetime в байтовые / шестнадцатеричные значения для сохранения обратно.
3. ВРЕМЯ ФАЙЛА составляет 8 байт. Вы пытались просто сохранить эти байты?
4. @manuell То, что я сделал, извлек значение реестра в BYTE [12] и скопировал последние 8 байтов в память FILETIME и использовал FileTimeToSystemTime для преобразования и вывода, идеально. Что мне нужно, так это то, что я должен сохранить время обратно в значение реестра. Как мне это сделать?
5. Я не понимаю. Скопируйте 8 байт вашего нового FILETIME в конце БАЙТА [12] и запишите его обратно в реестр. В чем ваша проблема?