KeyCode

G

Guest

The keys on a keyboard are assigned with 'KeyCode'. Is there a KeyCode for
'PrtScr'? I cannot seem to find this KeyCode. If there is no such KeyCode,
can VBA codes detect when the 'PrtScr' key is pressed?

Thanks.
 
G

Guest

Hi,
If you want to capture the screen, maybe more simple if use
API calls :
Option Explicit

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal _
bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Private Const VK_SNAPSHOT = &H2C

Sub PRTSCR()
keybd_event VK_SNAPSHOT, 1, 0, 0
End Sub

Rgds,

Halim
 
N

NickHK

I'm guessing this is connected to the OP's previous request to prevent
PrtScr rather than call it.

NickHK
 
G

Guest

Thanks a lot guys for all your help.

Just for your information, I have managed to circumvent the 'PrtScr' issue
by using a timer and clear clipboard procedures.
 
N

NickHK

Can you post the code.

NickHK

Francis Ang said:
Thanks a lot guys for all your help.

Just for your information, I have managed to circumvent the 'PrtScr' issue
by using a timer and clear clipboard procedures.
 
G

Guest

Here is the code ...

Declare Function CloseClipboard Lib "user32" () As Long
Declare Function EmptyClipboard Lib "user32" () As Long
Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long

Public RunWhen As Double
Public Const cProc = "ClrSub"

Sub ClearClipboard()
OpenClipboard 0&
EmptyClipboard
CloseClipboard
End Sub

Sub StartTimer()

RunWhen = Now + TimeSerial(0, 0, 1)
Application.OnTime earliesttime:=RunWhen, procedure:=cProc, _
schedule:=True

End Sub


Sub ClrSub()

ClearClipboard
StartTimer

End Sub
 
G

Guest

I won't know when the user press PrtScr. The code will run continuously and
clear the clipboard. This code takes about 1% or less of the CPU resources.
This is how I use the code.

Sub YourCode

StartTimer

Your other codes ...

End Sub

I must say this is not the best way to do it, but I achived my objective.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top