16. januar 2008 - 09:43Der er
25 kommentarer og 1 løsning
Print Screen af arkfaneindhold
I en database har jeg en række arkfaner, hver især repræsenterende en grafisk fremstilling. Jeg vil gerne at bruger har mulighed for nemt at "klippe" den aktuelle graf ud og benytte denne i eksempelvis en Power Point præsentation.
[Alt]+[Prt Scr] virker ikke :-(
Er der nogen måde hvorpå at jeg kan gøre dette "smart" ... altså uden at bruger skal via paint ?
Med voksende trusler, nye EU-krav og øget kompleksitet er cybersikkerhed nu en central ledelsesopgave på linje med strategi og økonomi.
Slettet bruger
16. januar 2008 - 10:17#1
Her er et modul, som laver en PrtScr. Call ScreenDump!~)
Modul:
Option Compare Database Option Explicit
Type RECT_Type
left As Long top As Long right As Long bottom As Long
End Type
'The following declare statements are case sensitive.
Declare Function GetActiveWindow Lib "User32" () As Long Declare Function GetDesktopWindow Lib "User32" () As Long Declare Sub GetWindowRect Lib "User32" (ByVal Hwnd As Long, _ lpRect As RECT_Type) Declare Function GetDC Lib "User32" (ByVal Hwnd As Long) As Long Declare Function CreateCompatibleDC Lib "Gdi32" (ByVal hdc As Long) _ As Long Declare Function CreateCompatibleBitmap Lib "Gdi32" (ByVal hdc _ As Long, ByVal nWidth As Long, _ ByVal nHeight As Long) As Long Declare Function SelectObject Lib "Gdi32" (ByVal hdc As Long, _ ByVal hObject As Long) As Long Declare Function BitBlt Lib "Gdi32" (ByVal hDestDC 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 dwRop As Long) As Long Declare Function OpenClipboard Lib "User32" (ByVal Hwnd As Long) As Long Declare Function EmptyClipboard Lib "User32" () As Long Declare Function SetClipboardData Lib "User32" (ByVal wFormat As Long, _ ByVal hMem As Long) As Long Declare Function CloseClipboard Lib "User32" () As Long Declare Function ReleaseDC Lib "User32" (ByVal Hwnd As Long, _ ByVal hdc As Long) As Long Declare Function DeleteDC Lib "Gdi32" (ByVal hdc As Long) As Long
Global Const SRCCOPY = &HCC0020 Global Const CF_BITMAP = 2
Function ScreenDump() Dim AccessHwnd As Long, DeskHwnd As Long Dim hdc As Long Dim hdcMem As Long Dim rect As RECT_Type Dim junk As Long Dim fwidth As Long, fheight As Long Dim hBitmap As Long
DoCmd.Hourglass True
'--------------------------------------------------- ' Get window handle to Windows and Microsoft Access '--------------------------------------------------- DeskHwnd = GetDesktopWindow() AccessHwnd = GetActiveWindow()
'--------------------------------------------------- ' Get screen coordinates of Microsoft Access '--------------------------------------------------- Call GetWindowRect(AccessHwnd, rect) fwidth = rect.right - rect.left fheight = rect.bottom - rect.top
'--------------------------------------------------- ' Get the device context of Desktop and allocate memory '--------------------------------------------------- hdc = GetDC(DeskHwnd) hdcMem = CreateCompatibleDC(hdc) hBitmap = CreateCompatibleBitmap(hdc, fwidth, fheight)
If hBitmap <> 0 Then junk = SelectObject(hdcMem, hBitmap)
'--------------------------------------------- ' Copy the Desktop bitmap to memory location ' based on Microsoft Access coordinates. '--------------------------------------------- junk = BitBlt(hdcMem, 0, 0, fwidth, fheight, hdc, rect.left, _ rect.top, SRCCOPY)
'--------------------------------------------- ' Set up the Clipboard and copy bitmap '--------------------------------------------- junk = OpenClipboard(DeskHwnd) junk = EmptyClipboard() junk = SetClipboardData(CF_BITMAP, hBitmap) junk = CloseClipboard() End If
Lige som print screen knappen, den ligger et screendump i udklipsholderen... Du kunne jo lave en autokeys makro og ligge den på ^p eller hvad du nu ønsker, så ville ctrl-p gøre det samme som print screen!~)
Synes godt om
Slettet bruger
16. januar 2008 - 11:05#4
Lige et øjeblik, du vil selvfølgelig kun have selve grafen....
Jeg har nu lavet det sådan, at den kan aktiveres via en makro i en lokal menu ... men da denne ScreenDump er specialdesignet til netop dette formål, vil jeg gerne at menupunktet udelukkende er aktivt når den rigtige form er aktiv ... er det muligt ?
Synes godt om
Slettet bruger
16. januar 2008 - 12:30#14
Det virker også, som om du har travlt med et eller andet, jeg har nogen gange taget mig selv i at være lidt nysgerrig!~)
Synes godt om
Slettet bruger
16. januar 2008 - 12:31#15
Hov, jeg røg lige i et hotline tidshul!~)
Synes godt om
Slettet bruger
16. januar 2008 - 12:32#16
Ang. tillæg...
Hvis det ikke er muligt, så kan du skifte menulinjen ud, når fanebladet er aktivt!~)
Jamen, jeg har faktisk også så travlt med at udvikle, at jeg sjældent får tid til at hjælpe andre :-( .... med mindre der er tale om helt åbentlyse ting som kan klares på 1-3 svar ...
Jeg mener at kunne huske noget med, at du på Top 10 udelukkende ser de point du har tjent ved at hjælpe andre ... i mit tilfælde ( og dit ) er der spørgsmål du selv har oprettet og likket som løst af dig selv :-)
Synes godt om
Slettet bruger
16. januar 2008 - 13:40#22
Fair enough... det viser bare hvor hurtige vi er!~)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.