3
3
* about dialog
4
4
*
5
5
* Copyright (C) 2010-2016 wj32
6
- * Copyright (C) 2017-2018 dmex
6
+ * Copyright (C) 2017-2020 dmex
7
7
*
8
8
* This file is part of Process Hacker.
9
9
*
@@ -179,6 +179,23 @@ FORCEINLINE ULONG PhpGetObjectTypeObjectCount(
179
179
return info .NumberOfObjects ;
180
180
}
181
181
182
+ PPH_STRING PhpGetBuildTimeDiagnostics (
183
+ VOID
184
+ )
185
+ {
186
+ LARGE_INTEGER time ;
187
+ SYSTEMTIME systemTime = { 0 };
188
+ PIMAGE_DOS_HEADER imageDosHeader ;
189
+ PIMAGE_NT_HEADERS imageNtHeader ;
190
+
191
+ imageDosHeader = (PIMAGE_DOS_HEADER )PhInstanceHandle ; // HACK
192
+ imageNtHeader = (PIMAGE_NT_HEADERS )PTR_ADD_OFFSET (imageDosHeader , imageDosHeader -> e_lfanew );
193
+ RtlSecondsSince1970ToTime (imageNtHeader -> FileHeader .TimeDateStamp , & time );
194
+ PhLargeIntegerToLocalSystemTime (& systemTime , & time );
195
+
196
+ return PhaFormatDateTime (& systemTime );
197
+ }
198
+
182
199
PPH_STRING PhGetDiagnosticsString (
183
200
VOID
184
201
)
@@ -187,6 +204,24 @@ PPH_STRING PhGetDiagnosticsString(
187
204
188
205
PhInitializeStringBuilder (& stringBuilder , 50 );
189
206
207
+ #if (PHAPP_VERSION_REVISION != 0 )
208
+ PhAppendFormatStringBuilder (& stringBuilder ,
209
+ L"Process Hacker\r\nVersion: %lu.%lu.%lu (%hs)\r\n" ,
210
+ PHAPP_VERSION_MAJOR ,
211
+ PHAPP_VERSION_MINOR ,
212
+ PHAPP_VERSION_REVISION ,
213
+ PHAPP_VERSION_COMMIT
214
+ );
215
+ PhAppendFormatStringBuilder (& stringBuilder , L"Compiled: %s\r\n\r\n" , PhpGetBuildTimeDiagnostics ()-> Buffer );
216
+ #else
217
+ PhAppendFormatStringBuilder (& stringBuilder ,
218
+ L"Process Hacker\r\nVersion: %lu.%lu\r\n" ,
219
+ PHAPP_VERSION_MAJOR ,
220
+ PHAPP_VERSION_MINOR
221
+ );
222
+ PhAppendFormatStringBuilder (& stringBuilder , L"Compiled: %s\r\n\r\n" , PhpGetBuildTimeDiagnostics ()-> Buffer );
223
+ #endif
224
+
190
225
PhAppendFormatStringBuilder (& stringBuilder , L"OBJECT INFORMATION\r\n" );
191
226
192
227
#define OBJECT_TYPE_COUNT (Type ) PhAppendFormatStringBuilder(&stringBuilder, \
0 commit comments