我想点击菜单上面的一个按钮后,直接就类式与按下了PrintScreen键,但是我对键盘消息不是很清楚,请教各位大侠! 我是这样实现的: 在按钮的单击事件里面这样写的: SendMessage(Handle,WM_KEYUP,VK_SNAPSHOT,0);但是没有效果,请问应该怎样写呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 仅仅keyup还不行吧,在前面加上keydown试试,有两个消息模拟按键 class procedure CWindowOperator.SendKey(myHwnd: integer;VKey: Word);begin SendMessage(myHwnd,WM_KEYDOWN, VKey , 0); SendMessage(myHwnd,WM_CHAR , VKey , 1); SendMessage(myHwnd,WM_KEYUP , VKey , 0);end; {同理, 傳送 'A' 時, 應先送KEYDOWN,'a'WM_CHAR,'A'KEYUP,'a'才能正常運作, 省略掉後面的 message, 會有意外發生.} 不用消息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; Delphi导入excel文件代码 啥也不说了,散分 如何获取线程的执行时间? DELPHI画板怎么写? 谁大富翁离线数据库CHM版的下载 mediaplayer 实现远程播放 8月31号,让我难以忘掉的日子!!!!!! 小女子有难题了,请各位大侠相助,小女子在这里先谢了 Delphi XE2用IDHTTP通过OAUTH在饭否发状态 使用SPCOMM控件遇到的问题 关于画线消失的问题 外部调用方法中对Void*的处理
begin
SendMessage(myHwnd,WM_KEYDOWN, VKey , 0);
SendMessage(myHwnd,WM_CHAR , VKey , 1);
SendMessage(myHwnd,WM_KEYUP , VKey , 0);
end;
同理, 傳送 'A' 時, 應先送
KEYDOWN,'a'
WM_CHAR,'A'
KEYUP,'a'才能正常運作, 省略掉後面的 message, 會有意外發生.
}
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;