hvis det er win9x så kan den vist nok findes i regdb (HKEY_DYN_DATA" hvis det er winnt så skal du lave et kald til NtQuerySystemInformation som er i "ntdll.dll". Dette kald er tilsyneladende udokumenteret hos microsoft - jeg har ikke kunnet finde det.
jeg har noget c++ kode der viser hvodan det kan gøres, men ingen basic..
// Hent antal processor i computeren. status = NtQuerySystemInformation(SystemBasicInformation, &SysBaseInfo, sizeof(SysBaseInfo), NULL); if (status != NO_ERROR) { return -1; }
for(int i=0;i<2;i++) { //Hent system tid. status = NtQuerySystemInformation(SystemTimeInformation, &SysTimeInfo, sizeof(SysTimeInfo), 0); if(status!=NO_ERROR) { return -1; }
//Hent CPU udnyttet tid. status = NtQuerySystemInformation(SystemPerformanceInformation, &SysPerfInfo, sizeof(SysPerfInfo), NULL); if(status != NO_ERROR) { return -1; }
//Hvis det er første gennemløb springes der over. if(liOldIdleTime.QuadPart != 0) { // CurrentValue = NewValue - OldValue dbIdleTime = Li2Double(SysPerfInfo.liIdleTime) - Li2Double(liOldIdleTime); dbSystemTime = Li2Double(SysTimeInfo.liKeSystemTime) - Li2Double(liOldSystemTime);
Der er muligvis en anden der kan hjælpe dig med at få det oversat. Muligvis er noget lign. allerede lavet. Men jeg brugte en hel del tid på at finde noget konkret om emnet da jeg lavede ovenstående, så det er måske svært at finde. Faktisk er ovenstående "bare" en modificering af noget kode jeg fandt "somewhere on the Internet" :-)
jeg kan lave en dll der indkapsler koden - men så vil du stadig skulle oversætte følgende kode: dll = LoadLibrary("ntdll.dll"); if(dll != NULL) { NtQuerySystemInformation = (PROCNTQSI)GetProcAddress(dll, "NtQuerySystemInformation"); } FreeLibrary(dll);
hehe jae regnede også med det var det du mente :O)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.