Olá a todos, bem, estou com um problema e gostaria de saber se alguem pode me explicar o porque esta acontecendo isso...
Estou criando um programa para monitorar uma rede remotamente, ou seja, será exibido vários pequenos monitores, nome da maquina e oque se esta vendo nele...
ja pensei no esquema de compactar as imagens capturadas com a DLL (jpg) e jogar para o servidor via Wsck, até ai blz...
Fiz alguns testes e foi tudo como eu esperava, o problema é que cada vez que se capura a tela e joga em uma picture, ocupa um pouco da memória, e quando vai capturando e jogando no "mesmo" picture, a memória começa a se encher, até o windows travar sem memória...
Para Capturar Não quero usar a Área de transferencia, porque além do processamento, quero deixa-la livre, então estou usando a API GetDC
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
'e para carrega-la no form estou utilizando a API StretchBlt
Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
'Código simples---------------------------------------
hdcscreen = GetDC(0)
Picture1.Cls
r = StretchBlt(Picture1.hdc, 0, 0, w, h, hdcscreen, 0, 0, wScreen, hScreen, vbSrcCopy)
-----------------------------------------------------
Dpois de carregar no picture e salvar o arquivo..Tentei os seguintes procedimentos:
1º dava um unload ou cls no picture
2º unload no form
nenhum dos dois liberou a memória =/
Então fica ai o meu problema..