Stránka 1 z 2

Jak „zmrazit“ čas

Napsal: 05 říj 2010 14:08
od teflondon
Zdravim,potreboval bych vedet jak muzu zmenit casove udaje a dobu trvani tvorby urciteho dokumentu. Napr kdyz delam vykres v AutoCadu a pak se podivam na vlastnosti a podrobnosti,je tam kdy jsem to vytvoril,datum zmeny a cas trvani. A ja bych potreboval vedet jak muzu zmenit tyto casove udaje. Stacilo by kdybych zmenil cas na PC treba na pondeli odpoledne,ale ve skutecnosti bych to delal treba v sobotu vecer. No jo,ale co kdyz na tom pracuji napr 5hodin a ja chci,aby tam bylo napsano ze to trvalo treba 2 hodiny.?. Jde na ve win7 a XP nejak zmrazit cas,pak ho zase na dve hodky spustit ,a potom zase zmrazit ?

Re: Jak „zmrazit“ čas

Napsal: 05 říj 2010 15:11
od MiliNess
Nejde. Musel byste upravovat přímo soubory projektu, kde bude tato informace uložena.
Pokud si ale přenastavíte systémový čas a datum, uloží se do souboru tento.

Re: Jak „zmrazit“ čas

Napsal: 05 říj 2010 17:16
od teflondon
Ok, ani pres zadny program by to neslo? Jinak me staci ta zmena datumu ,ale ta doba trvani by se mi taky hodila :)

Re: Jak „zmrazit“ čas

Napsal: 05 říj 2010 17:45
od MiliNess
Programově to realizovatelné je (nejspíše zahákováním API funkcí GetSystemTime & GetLocalTime a spol.) nebo přímo editováním toho souboru z Autocadu. Jestli ale někdo něco takového někdy napsal, to nevím.
Taky se těžko získávají detaily o interní struktuře těchto souborů.
Většinou nezbývá nic jiného, než vytvořit co nejmenší soubor a pomocí hexeditoru hledat patřičnou hodnotu. Určitě to bude v nějaké hlavičce souboru, které bývají na začátku. Nesmíte ale zapomínat, že ten čas a datum budou v souboru uložena jako 32bitová čísla nebo jako 64bitové číslo (UTC - počet 100ns intervalů od 1.1.1601) navíc bývá uloženo jako little endian. Pokud nemáte potřebné znalosti, patrně to nenajdete.
V NTFS může být takovýto údaj k souboru připojen jako nějaký pojmenovaný atribut. V tomto případě to ale bude nejspíše uvnitř dokumentu.

Re: Jak „zmrazit“ čas

Napsal: 05 říj 2010 18:04
od teflondon
A jak se to zahakuje pomoci tech funkcí? moc tomu nerozumim

Re: Jak „zmrazit“ čas

Napsal: 05 říj 2010 18:13
od MiliNess
To už je takové středně těžké programování. V paměťovém prostoru procesu Autocad se najde adresa, kde je natažena např. dynamická knihovna kernel32.dll, najdou se vstupní body těch funkcí z knihovny, jejichž chování nebo výstup potřebujeme ovlivnit a přesměrujeme vstupní body těch funkcí na vlastní kód. Ten pak upraví chování. Autocad např. zavolá funkci GetLocalTime aby zjistil čas, která by mu vrátila třeba 12:55.
Místo toho ale zavolá náš kód, který mu vrátí čas 17:31.
Pro vás připadá v úvahu buď už hotový program nebo editace v hexeditoru a i to je dost obtížné.

Re: Jak „zmrazit“ čas

Napsal: 05 říj 2010 18:26
od teflondon
Aha, no nechme to tak, ale i tak dekuju

Re: Jak „zmrazit“ čas

Napsal: 05 říj 2010 19:11
od CZechBoY
samozřejmě lze změnit časy uloženého souboru(modifikační, vytvoření, přístup)

Re: Jak „zmrazit“ čas

Napsal: 05 říj 2010 19:18
od teflondon
Tak to si zmenim datum a cas na PC,ale jak zmenim cas jak dlouho jsem to delal, MiliNess mi to uz napsal ,ale obavam se ze timhle zpusobem je to asi nad me sily

Re: Jak „zmrazit“ čas

Napsal: 05 říj 2010 20:56
od MiliNess
CZechBoY píše:samozřejmě lze změnit časy uloženého souboru(modifikační, vytvoření, přístup)

Samozřejmě, tato časová razítka jsou uložena buď přímo ve FAT recordu (FAT FS) nebo v atributu $STANDARD_INFORMATION souboru v NTFS
a lze je normálně upravovat. Tazateli šlo ale o jiná data.

Re: Jak „zmrazit“ čas

Napsal: 05 říj 2010 21:12
od teflondon
V podrobnostech toho souboru je cas,jak dlouho jsem to delal (treba 5hodin) a ja to chci prepsat,,npr ze jsem to delal jen 2 hodiny

Re: Jak „zmrazit“ čas

Napsal: 05 říj 2010 21:37
od CZechBoY
pošli screen, lepší 1 obrázek než 5popsanejch stránek o tom že nikdo neví co myslíš ;-)