any idea

Programmation d'applications complexes
hardy
Messages : 333
Inscription : mer. 02/juin/2004 13:19
Localisation : Tours

any idea

Message par hardy »

Code : Tout sélectionner

;path.s=Space(255) 
;GetModuleFileName_(0,@path,255)

;While Right(path,1)<>"\"
;path=Left(path,Len(path)-1)
;Wend

;hWnd=Val(ProgramParameter())
;If SendMessage_(hWnd,673, 0, GetCurrentProcessId_())=0
;End
;EndIf

Dim actuel.s(100)
Structure PROCESSENTRY32 
    dwSize.l 
    cntUsage.l 
    th32ProcessID.l 
    th32DefaultHeapID.l 
    th32ModuleID.l 
    cntThreads.l 
    th32ParentProcessID.l 
    pcPriClassBase.l 
    dwFlags.l 
    szExeFile.b[260] 
EndStructure 


DefType.PROCESSENTRY32 Proc32 
Proc32\dwSize = SizeOf(PROCESSENTRY32) 
If OpenLibrary (0,"kernel32.dll")=0
  MessageRequester("Relance","Echec initialisation")
  End
Else
  Repeat
  nbactuel=0
    s=CallFunction(0,"CreateToolhelp32Snapshot",274,0)
    If s
         If CallFunction(0,"Process32First",s, @Proc32) 
            If Len(PeekS(@Proc32\szExeFile))>0 And Proc32\th32ProcessID>0
            nbactuel=nbactuel+1
            actuel(nbactuel)="&&"+PeekS(@Proc32\szExeFile)+"&&"+Str(Proc32\th32ProcessID)
            EndIf
            While CallFunction (0, "Process32Next", s, @Proc32)
            If Len(PeekS(@Proc32\szExeFile))>0 And Proc32\th32ProcessID>0
                nbactuel=nbactuel+1
                actuel(nbactuel)="&&"+PeekS (@Proc32\szExeFile)+"&&"+Str(Proc32\th32ProcessID)
            EndIf
            Wend
           EndIf
     EndIf 
     CloseHandle_(s)

SortArray(actuel(),2,1,nbactuel)

;If nbactuel=0
;RunProgram(path+"relance.exe",Str(hWnd),"")
;End
;EndIf

resultat.s=""
For k=1 To nbactuel
resultat=resultat+actuel(k)
Next k

;If SendMessage_(hWnd,674, @resultat, Len(resultat))=0
;  RunProgram(path+"relance.exe",Str(hWnd),"")
;End
;endif

Delay(50)

ForEver
EndIf

End
Un truc que j'utilise.
ouvrez le taskmanager et lancez ça : la mémoire utilisée augmente régulièrement, et au bout d'un moment l'appel à CreateToolhelp32Snapshot échoue.
:?: :?: :?:
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Il faut voir quoi?

Moi, j'ai bien la mémoire qui augmente, puis ça se stabilise.

Par contre, comment on voit que CreateToolhelp32Snapshot échoue :oops:

WinXP SP2 512 Mo
hardy
Messages : 333
Inscription : mer. 02/juin/2004 13:19
Localisation : Tours

Message par hardy »

lorsque la mémoire se stabilise, s passe à -1, et on n'obtient plus rien.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Ah d'accord, effectivement, j'ai mis ça :
If s = -1 : MessageRequester("","Planté") : EndIf
après s=CallFunction(0,"CreateToolhelp32Snapshot",274,0), et au bout d'un moment, la boite apparait
hardy
Messages : 333
Inscription : mer. 02/juin/2004 13:19
Localisation : Tours

Message par hardy »

Alors, personne n'a une idée?

FRED !!!!!!!!
hardy
Messages : 333
Inscription : mer. 02/juin/2004 13:19
Localisation : Tours

Message par hardy »

Eh ben, remuez vos petites cellules grises, ou elles vont s'empâter.
Serait-ce un bug PB? (libération de mémoire)
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Appelles GetLastError() pour déterminer pourquoi CreateToolhelp32Snapshot retourne INVALID_HANDLE_VALUE et dis nous tout
hardy
Messages : 333
Inscription : mer. 02/juin/2004 13:19
Localisation : Tours

Message par hardy »

31: A device attached to the system is not functioning. ERROR_GEN_FAILURE

Avec ça...
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

on est bien avancé ...
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

je vais peut-être dire une co**erie mais il n'y aurait pas une sécurité de win qui empêche dans faire trop à la fois :roll:
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Répondre