Newsgroup: it.comp.appl.access
Titolo: Come si fa a catturare uno screenshot in VBA?

Vorrei catturare uno screenshot della form attiva o dello schermo, e
proporre all'utente l'arteprima di stampa utilizzando il
visualizzatore di immagini di Windows
Andrea Papi


Ciao 
fermo restando che non è il caso di stampare form, ci sono i report
ma come fai tu fai visualizzare anche per esempio la barra di windows.
Semmai fai un'anteprima di stampa della maschera da stampare
-- 
-- 
MAssimiliano Amendola
www.accessgroup.it
Cisa - Conferenza Italiana Sviluppatori Access

 wrote:

ciao MA, grazie per aver risposto.
sono anch'io d'accordo sull'utilizzo di report e quant'altro, devo
però assecondare l'esigenza di un cliente.
Per il momento penso di utilizzare hardcopy
http://italian.eazel.com/lv/group/view/kl38253/HardCopy.htm
però volevo evitare l'installazione di ulteriore sw sul pc del cliente
ed ottimizzare il tutto con routine in vba.
Ho trovato parecchio codice ma, purtroppo, tutto per vb6, .net , ecc.
ecc.
Inoltre non posso utilizzare l'anteprima di stampa su quella maschera
in quanto mi produce migliaia di pagine.
Pensavo a qualche funzione API di Windows in grado di automatizzare i
seguenti 4 processi
1- copiare nella clipboard l'immagine della form attiva
2- salvare l'immagine creando un file temporaneo .bmp
3- aprire quel file con il visualizzatore di immagini di windows
4- proporre all'utente l'anteprima di stampa
Andrea Papi


Aspetta, con l'anteprima 
tu puoi filtrare i record a quello visualizzato
-- 
-- 
MAssimiliano Amendola
www.accessgroup.it


 ha scritto nel messaggio 
news:b4faaec2-236c-4d30...@a70g2000hsh.googlegroups.com...

Prova con il SendKeys a simulare la pressione della sequenza: ALT-Stamp; poi 
apri (con la Shell) un programma di gestione grafica e simuli, sempre con la 
SendKeys CTRL-V...
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggio 
news:b4faaec2-236c-4d30...@a70g2000hsh.googlegroups.com...

Ciao Andrea
se il problema è quello di mostrare esattamente quello che contiene la 
maschera aperta in quel momento, oltre ai consigli che ti sono già stati 
dati, esiste anche un'altra strada:
Salvi la maschera come Report
Apri il report e modifichi l'origine, qui puoi eliminarla completamente o 
creare una query che preleva il solo id della maschera aperta.
Se elimini l'origine dati su apertura del report dovrai, oltre ad eliminare 
ogni origine per ogni singolo controllo, valorizzare i vari controlli:
me.MioControllo = Forms!TuaMaschera!TuoNomeControllo
così per tutti gli altri controlli.
Il risultato sarà esattamente quello di "vedere" e stampare quello che 
mostra la maschera e con la stessa grafica, come se fosse una bmp...ma ti 
sarai evitato mille problemi.
Ciao, Carlo

 ha scritto nel messaggionews:b4faaec2-236c-4d30...@a70g2000hsh.googlegroups.com...

grazie ragazzi per i consigli dati.
penso di seguire le indicazioni di MA sulla stampa della form dopo
aver impostato il filtro maschera
    Me.FilterOn = True            ' attivo il filtro
    Me.Filter = "ID=" & 
ME.ID
  ' imposto il filtro
    DoCmd.PrintOut                ' eseguo la stampa
    Me.FilterOn = False           ' disattivo il filtro maschera
    Me.Filter = ""                    ' azzero il filtro
ciao
Andrea Papi

 - Mostra testo tra virgolette -
per completezza invio il codice che ho deciso di utilizzare per la
stampa della form
' ==================================================
    With Me.Printer
    .Orientation = acPRORLandscape  ' imposto a orizzontale la stampa
 ' imposto i margini
    .TopMargin = 0
    .BottomMargin = 0
    .LeftMargin = 0
    .RightMargin = 0
    End With
' stampo filtrando il record corrente
    DoCmd.PrintOut acSelection, 1, , acMedium
' ==================================================
Andrea Papi