读书人

小弟我想点击菜单上面的一个按钮后直

发布时间: 2012-02-29 16:44:10 作者: rapoo

我想点击菜单上面的一个按钮后,直接就类式与按下了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);

读书人网 >.NET

热点推荐