Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: soru13 en 26 Agosto 2006, 21:42 pm



Título: no sobrescribir imagen
Publicado por: soru13 en 26 Agosto 2006, 21:42 pm
tengo un problema en mi programa, lo que hace es capturar la pantalla y guardar la imagen, pero si esta ya existe la sobrescribe y no quiero que haga eso, si por ejemplo existe ya uno que se llama captura1 pues que haga otra nueva k sea captura2 asi sucesivamente

Código:
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
'Api para generar un evento de tecla
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Const KEYEVENTF_KEYUP = 2
'Api para generar una pausa
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

------------------------

Private Sub copiar_Y_Guardar()
On Local Error Resume Next
'Variable para la imagen
Dim imagen As IPictureDisp
keybd_event 44, 0, 0, 0
'mediante Keyevent accionamos la tecla Alt+Printscreen
Set imagen = Clipboard.GetData
DoEvents
'Guardamos la imagen en el directorio especificado
SavePicture imagen, "c:\documents and settings\All users\Escritorio\captura1.bmp"
'eliminamos la imagen de la memoria
Set imagen = Nothing
End Sub


Título: Re: no sobrescribir imagen
Publicado por: whiskises en 26 Agosto 2006, 22:01 pm
le pones un contador  n , y luego
Código:
SavePicture imagen, "c:\documents and settings\All users\Escritorio\captura" & n & ".bmp"
n=n+1



Título: Re: no sobrescribir imagen
Publicado por: soru13 en 26 Agosto 2006, 23:02 pm
un contador??? como hago eso?

e puesto el codigo que me diste pero no va, me lo guarda como captura.bmp pero luego sigue sobrescribiendolo


Título: Re: no sobrescribir imagen
Publicado por: Zeroql en 26 Agosto 2006, 23:19 pm
Dim COntador as integer
contador=contador+1
SavePicture imagen, "c:\documents and settings\All users\Escritorio\captura" & contador & ".bmp"

hai tienes tu codigo


Título: Re: no sobrescribir imagen
Publicado por: soru13 en 26 Agosto 2006, 23:31 pm
no me funciona


Título: Re: no sobrescribir imagen
Publicado por: NYlOn en 27 Agosto 2006, 01:35 am
Citar
e puesto el codigo que me diste pero no va
No tenes que copiar y pegar. Adaptalo a tu programa.
Lo que podes hacer es que una variable vaya aumentando cada vez que guardas la imagen. Entonces siempre va a haber un nº distinto. Acordate de que la variable se tiene que mantener, asique usa una variable estatica o declarada en la parte de declaraciones. Algo asi:
Código:
Static i as Integer
i = i + 1
SavePicture img, "X:\Foto" & i & ".bmp"

Saludos.-


Título: Re: no sobrescribir imagen
Publicado por: Hans el Topo en 27 Agosto 2006, 02:02 am
guardala por fecha... asi te ahorraras luego problemas cuando te envien capturas de otros sitios...

en vez de poner la variable guardas la fecha sin ningun caracter especial y listo


Título: Re: no sobrescribir imagen
Publicado por: soru13 en 27 Agosto 2006, 02:05 am
bueno, use este codigo y si que funciona

Código:
Dim NumeroArchivo As Integer
Dim Archivo As String
Dim blnExiste As Boolean

While blnExiste <> True
Archivo = Dir("c:\documents and settings\All users\Escritorio\captura" & NumeroArchivo & ".bmp")
If Archivo = "" Then
blnExiste = True
Else
NumeroArchivo = NumeroArchivo + 1
End If
Wend
SavePicture imagen, "c:\documents and settings\All users\Escritorio\captura" & NumeroArchivo & ".bmp"