Ok fatto...non l'ho minimamente provato..
http://cursumperficio.altervista.org/SetiBenchmark.exe
h23, questo è il sorgente, se hai problemi vedi se riesci a risolverli da te altrimeni mi ci metto appena ho tempo..
funziona 0così... metti il benchmark nella cartella di seti, rinomini seti in seti.exe, cancelli state.sah e ci metti una WU nuova che consereverai per le prossime elaborazioni da testaere, poi lanci il benchmark che lancia seti.exe e conta i secondi che ci mette con un errore massimo di 1 secondo...ci sarebbero da aggiungere i giorni.. fai te se vuoi
- Codice: Seleziona tutto
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <windows.h>
#include <time.h>
int main() {
char *tmp2;
char fatte[100];
int fatteprima;
int fattedopo;
FILE *fileuser;
time_t start,end;
double dif;
int ore,minuti,secondi;
while(1)
{
ShellExecute( NULL, "open", "seti.exe", NULL, NULL, SW_SHOWNORMAL );
time (&start);
printf("Workunit Started --> %s",asctime(localtime(&start)));
fileuser = fopen("user_info.sah", "r");
if(fileuser==NULL)
{
MessageBox (NULL, "Error reading \"user_info.sah or seti.exe\"!! Be sure\nto have it in the same folder of SetiBenchmark.exe\n", "D'ho! (Homer Simpson's way)", MB_OK);
return 1;
}
else {
while(fgets(fatte, 100, fileuser)!=NULL)
{
if(tmp2=strstr(fatte,"nresults="))
{
tmp2=tmp2 + 9;
fatteprima=(int)atof(tmp2);
break;
}
}
}
fclose(fileuser);
sleep(1000);
fileuser = fopen("user_info.sah", "r");
if(fileuser==NULL)
{
MessageBox (NULL, "Error reading \"user_info.sah\"!! Be sure to\nhave it in the same folder of SetiBenchmark.exe\n(It should be the same one for seti@home)", "D'ho! (Homer Simpson's way)", MB_OK);
return 1;
}
else {
while(fgets(fatte, 100, fileuser)!=NULL)
{
if(tmp2=strstr(fatte,"nresults="))
{
tmp2=tmp2 + 9;
fattedopo=(int)atof(tmp2);
break;
}
}
}
fclose(fileuser);
if (fattedopo > fatteprima)
{
time (&end);
dif = difftime (end,start);
printf("Workunit Completed --> %s\n",asctime(localtime(&end)));
ore = dif/3600;
minuti = (dif-(ore*3600))/60;
secondi = dif-((ore*3600)+(minuti*60));
printf ("Time elapsed : %d:%d:%d \n", ore,minuti,secondi );
system("PAUSE");
}
}
return 0;
}