@@ -139,12 +139,15 @@ void Diag::Begin ( void )
139
139
if ( GetAsyncKeyState ( VK_F1 ) )
140
140
break ;
141
141
#endif
142
- if ( !( CompareFileMD5 ( szMd5, ( GTAPath + szFilename ) ) ) )
142
+ std::string strCalcedMd5 = GetFileMD5 ( GTAPath + szFilename );
143
+ long long fileSize = GetFileSize ( GTAPath + szFilename );
144
+ if ( strCalcedMd5 != szMd5 )
143
145
{
144
- std::cout << " Nonstandard GTA file: " << fileList[i]. szFilename << std::endl;
146
+ std::cout << " Nonstandard GTA file: " << szFilename << std::endl;
145
147
146
148
Log::WriteStringToLog ( " Nonstandard GTA file: " , szFilename );
147
- Log::WriteStringToLog ( GetFileMD5 ( GTAPath + szFilename ) );
149
+ std::stringstream ss; ss << " MD5sum for " << szFilename << " : " << strCalcedMd5 << " Size: " << fileSize;
150
+ Log::WriteStringToLog ( ss.str () );
148
151
Log::WriteStringToLog ( " Value should be: " , szMd5 );
149
152
Log::WriteStringToLog ( " " );
150
153
}
@@ -161,7 +164,7 @@ void Diag::Begin ( void )
161
164
DoSystemCommandWithOutput ( std::string ( " dxdiag /t " ) + files[FILE_TEMP], OUTPUT_NONE );
162
165
ProgressBar ( 10 );
163
166
#endif
164
- DoSystemCommandWithOutput ( " tasklist" );
167
+ DoSystemCommandWithOutput ( " tasklist" , OUTPUT_ANSI, 120000 );
165
168
ProgressBar ( 20 );
166
169
167
170
// write some of MTA's logs to our log
@@ -196,12 +199,6 @@ void Diag::Begin ( void )
196
199
ProgressBar ( 40 );
197
200
198
201
DoSystemCommandWithOutput ( " ipconfig /all" ); // get network configuration
199
- ProgressBar ( 45 );
200
- if ( IsVistaOrNewer () )
201
- {
202
- // might help resolve Visual C++ runtime issues
203
- DoSystemCommandWithOutput ( " wevtutil qe Application /q:\" Event [System [(Level=2)] ] [EventData [(Data='Multi Theft Auto.exe')] ]\" /c:1 /f:text /rd:true" );
204
- }
205
202
ProgressBar ( 50 );
206
203
QueryWMIC ( " Path" , " Win32_VideoController" , " Get" ); // get some video controller information
207
204
ProgressBar ( 55 );
@@ -215,20 +212,29 @@ void Diag::Begin ( void )
215
212
216
213
// get relevant MD5sum( s)
217
214
Log::WriteDividerToLog ();
218
- Log::WriteStringToLog ( GetFileMD5 ( GTAPath + " \\ gta_sa.exe" ) );
219
- Log::WriteStringToLog ( " Value should be: 170b3a9108687b26da2d8901c6948a18 (HOODLUM 1.0)" );
215
+ Log::WriteStringToLog ( " MD5sum for gta_sa.exe: " + GetFileMD5 ( GTAPath + " \\ gta_sa.exe" ) );
216
+ // Log::WriteStringToLog ( "Value should be: 170b3a9108687b26da2d8901c6948a18 (HOODLUM 1.0)" );
220
217
Log::WriteStringToLog ( " " );
221
218
222
219
ProgressBar ( 80 );
223
220
224
221
// font diagnostics
225
222
Log::WriteDividerToLog ();
226
223
Log::WriteStringToLog ( " Verdana (TrueType) registry value:" , ReadRegKey ( " Verdana (TrueType)" , " SOFTWARE\\ Microsoft\\ Windows NT\\ CurrentVersion\\ Fonts\\ " ) );
227
- Log::WriteStringToLog ( GetFileMD5 ( systemRoot + " \\ Fonts\\ verdana.ttf" ) );
224
+ Log::WriteStringToLog ( " MD5sum for verdana.ttf: " + GetFileMD5 ( systemRoot + " \\ Fonts\\ verdana.ttf" ) );
228
225
Log::WriteStringToLog ( " Value should be: ba34b303291e36596759eb46ad9c51f2 (Win 8) / 6eee3713d2330d93183846f2d34f0976 (Win 7)" );
229
226
Log::WriteStringToLog ( " " );
230
227
GetDir ( systemRoot + " \\ Fonts\\ verd*" );
231
228
229
+ ProgressBar ( 90 );
230
+
231
+ // Do this last in case of problems
232
+ if ( IsVistaOrNewer () )
233
+ {
234
+ // might help resolve Visual C++ runtime issues
235
+ DoSystemCommandWithOutput ( " wevtutil qe Application /q:\" Event [System [(Level=2)] ] [EventData [(Data='Multi Theft Auto.exe')] ]\" /c:1 /f:text /rd:true" );
236
+ }
237
+
232
238
ProgressBar ( 100 ); std::cout << std::endl << std::endl;
233
239
234
240
// close the log file for writing
@@ -586,6 +592,7 @@ void Diag::GetDir ( std::string directory )
586
592
void Diag::DoSystemCommandWithOutput ( std::string command, int outputType, DWORD maxTimeMs )
587
593
{
588
594
Log::WriteDividerToLog ();
595
+ time_t startTime = time ( NULL );
589
596
590
597
SECURITY_ATTRIBUTES sa;
591
598
sa.nLength = sizeof (sa);
@@ -656,7 +663,7 @@ void Diag::DoSystemCommandWithOutput ( std::string command, int outputType, DWOR
656
663
{
657
664
DWORD dwExitCode = 0xFFFFFFFF ;
658
665
GetExitCodeProcess ( pi.hProcess , &dwExitCode );
659
- ss << command << " (returned " << dwExitCode << " )" ;
666
+ ss << command << " (returned " << dwExitCode << " ) [Took " << time ( NULL ) - startTime << " seconds] " ;
660
667
}
661
668
CloseHandle ( pi.hProcess );
662
669
CloseHandle ( pi.hThread );
0 commit comments