我想点击菜单上面的一个按钮后,直接就类式与按下了PrintScreen键,但是我对键盘消息不是很清楚,请教各位大侠!
我是这样实现的:
在按钮的单击事件里面这样写的:
SendMessage(Handle,WM_KEYUP,VK_SNAPSHOT,0);
但是没有效果,请问应该怎样写呢?
[解决办法]
不用消息
var
bmp : TBitmap;
ScreenCanvas : TCanvas;
Format : Word;
Data : THandle;
Palette : HPALETTE;
Desktop : THandle;
begin
ScreenCanvas := TCanvas.Create;
Desktop := GetDesktopWindow;
ScreenCanvas.Handle := GetDC(Desktop);
bmp := TBitMap.Create;
bmp.PixelFormat := pf24Bit;
bmp.Width := Screen.Width;
bmp.Height := Screen.Height;
bmp.Canvas.CopyRect(Rect(0,0,bmp.Width,bmp.Height),ScreenCanvas,
Rect(0,0,Screen.Width,Screen.Height));
bmp.SaveToClipBoardFormat(Format,Data,Palette);
ClipBoard.SetAsHandle(Format,Data);
bmp.Free;
ReleaseDC(Desktop,ScreenCanvas.Handle);
ScreenCanvas.Free;
end;
[解决办法]
keybd_event(VK_SNAPSHOT,0,0,0);