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
le pones un contador n , y luego
SavePicture imagen, "c:\documents and settings\All users\Escritorio\captura" & n & ".bmp"
n=n+1
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
Dim COntador as integer
contador=contador+1
SavePicture imagen, "c:\documents and settings\All users\Escritorio\captura" & contador & ".bmp"
hai tienes tu codigo
no me funciona
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.-
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
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"