プロセスを起動したら、プロセスハンドルから起動時間を取得します。
FILETIMEというのはよくわからんのだけど、winbase.hによると64bitの変数で
typedef struct _FILETIME { DWORD dwLowDateTime; DWORD dwHighDateTime; } FILETIME,*PFILETIME,*LPFILETIME;
こんな感じに、上位32bit+下位32bitという構成になってる。どうして64bit型にしないかは分からんが、多分32bit onlyな処理系を想定してるのでしょう。多分。で、これには何が入ってるかと言うと
1601年1月1日から100ns間隔での経過時間らしい。・・・うーん、いわゆるエポック秒は出せないのか?って思ってしまう俺はUNIXの人なんだろうなあ。
こちらのサイトでFILETIME -> time_tの変換をやってました。正確にはSYSTEMTIME -> time_tだったので、ちょっと変更。
time_t FileTimeToTimet(LPFILETIME pft){ return (time_t)(((*(const ULONGLONG *)pft) - 0x19DB1DED53E8000)/10000000); }