no sobrescribir imagen

Iniciado por soru13, 26 Agosto 2006, 21:42 PM

0 Miembros y 3 Visitantes están viendo este tema.

soru13

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

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

whiskises

le pones un contador  n , y luego
SavePicture imagen, "c:\documents and settings\All users\Escritorio\captura" & n & ".bmp"
n=n+1



soru13

#2
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

Zeroql

Dim COntador as integer
contador=contador+1
SavePicture imagen, "c:\documents and settings\All users\Escritorio\captura" & contador & ".bmp"

hai tienes tu codigo
Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#


soru13

#4
no me funciona

NYlOn

Citare 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:

Static i as Integer
i = i + 1
SavePicture img, "X:\Foto" & i & ".bmp"


Saludos.-

Hans el Topo

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
 

soru13

bueno, use este codigo y si que funciona

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"