Re: Mesurer temps d'execution WINDEV 7.5

Posté par Anonyme le 7/9/2004 9:38:09
Voila le lien que vous m'avez donné

comme l'indique le titre ca sert a lister les proc qui tourne donc rien a voir avec le temps d'execution d'un thread!!!
Suffit de connaitre un peu l'api windows pour s'en rendre compte de suite...
Citation :
Voici un bout de code trouver il y a longtemps sur internetProcédure ProcesNT()// Liste des process et modules sous NT// Ce module pour fonctionner correctement doit être lancer dans une// fenêtre disposant d'une table 'TABLE1' composer de 5 colonnes// id numérique entier (index dans la liste)// cProcessID texte// cProcessName texte// cModuleName texte// cPathName texte// Un interrupteur 'INTMODULE' permet de n'afficher// que les process (INTMODULE=0)// ou les process et modules correspondants (INTMODULE=1)//LOCAL idTabProcess est un tableau de 200 entiers longs Cb est un entier long=800 // taille en octets du tableau idTabProcess CbNeeded est un entier long NumElements est un entier long hTabModule est un tableau de 200 entiers longs Cb2 est un entier long=800 // taille en octets du tableau hTabModule CbNeeded2 est un entier long NumModules est un entier long Pname est une chaine FileName est une chaine fixe sur 260 BaseName est une chaine fixe sur 260 nSize est un entier long=260 // taille de FileName et BaseName lret,l1,l2 est un entier long hProcess est un entier long i,i2 est un entier long NumDll est un entier longNumDll=chargedll('PSAPI.DLL')si NumDll=0 alors erreur('La dll PSAPI n'a pas été chargée') renvoyer fauxfin//// The EnumProcesses function retrieves the process identifier// for each process object in the system.//// BOOL EnumProcesses(// DWORD * lpidProcess, // array to receive the process identifiers// DWORD cb, // size of the array// DWORD * cbNeeded // receives the number of bytes returned// );Lret=appeldll32('PSAPI.DLL','EnumProcesses',&idTabProcess,Cb,&CbNeeded)NumElements=CbNeeded/4 // Taille renvoyée divisée par la taille d'unentier long (4 octets)Pour i=1 a NumElements // // The OpenProcess function returns a handle to an existing process object. // // HANDLE OpenProcess( // DWORD dwDesiredAccess, // access flag // BOOL bInheritHandle, // handle inheritance flag // DWORD dwProcessId // process identifier // ); //HProcess=appeldll32('KERNEL32.DLL','OpenProcess',oubinaire(1024,16),0,idTabProcess[i]) si HProcess<>0 alors // On a un processus. On va rechercher ses modules. // // The EnumProcessModules function retrieves a handle for each module // in the specified process. // // BOOL EnumProcessModules( // HANDLE hProcess, // handle to the process // HMODULE * lphModule, // array to receive the module handles // DWORD cb, // size of the array // LPDWORD lpcbNeeded // receives the number of bytes returned // ); // Process_Query_Information=1024 // Process_All_Access=16 //Lret=Appeldll32('PSAPI.DLL','EnumProcessModules',Hprocess,&hTabModule,Cb2,&CbNeeded2) si LRet<>0 alors NumModules=CbNeeded2/4 SI INTMODULE=0 alors NumModules=1 Pour i2=1 a NumModules // The GetModuleBaseName function retrieves the base name of thespecified module. // //DWORD GetModuleBaseName( // HANDLE hProcess, // handle to the process // HMODULE hModule, // handle to the module // LPTSTR lpBaseName, // buffer that receives the base name // DWORD nSize // size of the buffer //); L1=Appeldll32('PSAPI.DLL','GetModuleBaseNameA',HProcess,hTabModule[i2].... ,&BaseName,nSize) SI L1=0 alors BaseName='' Si i2=1 alors Pname=minuscule(BaseName[[1 à L1]]) // // The GetModuleFileNameEx function retrieves the fully qualified path // for the specified module. // // DWORD GetModuleFileNameEx( // HANDLE hProcess, // handle to the process // HMODULE hModule, // handle to the module // LPTSTR lpFilename, // buffer that receives the path // DWORD nSize // size of the buffer // ); //L2=Appeldll32('PSAPI.DLL','GetModuleFileNameExA',HProcess,hTabModule[i2] ... ,&FileName,nSize) Si L2=0 alors FileName='' TABLEAJOUTE('TABLE1',i+i2/1000+TAB+idTabProcess[i]+TAB+PName+... TAB+Minuscule(BaseName[[1 à L1]])+... tab+Minuscule(FileName[[1 a L2]])) fin fin LRet=Appeldll32('KERNEL32.DLL','CloseHandle',HProcess) FINfinsi NumDll<>0 alors dechargedll(NumDll)fin


Pas grave.

SInon pour le dernier posteur merci mais je connaissais deja ces réponses la , en fait je voulais savoir si windev intégré ce genre de fontion(7.5) a priori non donc a priori je serais forcé de passer par l'api mon but etant de faire du w_l langage std sans passer par l'api win.

Sinon bien evidemment que les fonctions heuresys ne sont pas faites pour ça pour la raison que j'ai évoqué plus haut.

PS : [MODERE]

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=5&topic_id=1219&post_id=5162