level 9
想要截图,先了解一下windows自带的截图功能:PrtScr键【有的电脑是PrtSc】。
这个键的功能是印屏幕,就是将整个电脑屏幕给截图下来。
好像有点鸡肋?
PrtScr键还有一个组合件:Alt+PrtScr。这个组合键的功能是【当前窗口截图】就是将你嘴上发的那个窗口给截图下来。
今天我们要讲的就是用程序来实现Alt+Prtsc的功能。
2014年08月30日 05点08分
9
“嘴上发”改为“最上方”。
2017年06月26日 01点06分
level 9
实际上pascal里面是没有自带这么高端的函数的,而很不幸楼主也没有在API里面找到截图的函数,我们就要想办法模拟Alt+PrtScr。
用过按键精灵这个程序的人都知道,按键精灵可以吧用户的操作记录下来,录成脚本,之后可以重复。我们要做的是向按键精灵学习,将一些按键”重复“出来。
在windows API里面有这样一个函数:keybd_event。这个函数的作用是向Windows【发送】按键,比如说,你用keybd_event向Windows发送一个‘a*键,效果就等同于按下’a*键。
2014年08月30日 06点08分
12
level 9
keybd_event怎么用呢?
keybd_event有四个参数:
keybd_event(BYTE bVk,BYTE bScan,DWORD dwFlags,DWORD dwExtralnfo);
bVk:定义一个虚拟键码。键码值必须在1~254之间。
bScan:定义该键的硬件扫描码。
dwFlags:定义函数操作的各个方面的一个标志位集。应用程序可使用如下一些预定义常数的组合设置标志位。
dwExtralnfo:定义与击键相关的附加的32位值。
2014年08月30日 06点08分
14
如果默认开了中文输入法的话,keybd_event可能会出错。
2014年09月04日 01点09分
而且截下来的图怎么给程序用是一个问题,因为把剪贴板的东西弄进来有点麻烦。正确的办法是先GetForgroundWindow或者LoadFile等获得窗口|文件句柄,然后GetDC获取绘图设备,最后GetPixel或者其它函数取点|DC的颜色。
2014年09月04日 01点09分
回复 ax_pokl :大神为何不开一个api讲座,Windows的网站上面的都看不懂
2014年09月04日 09点09分
回复 风x千叶翔龙V :怎么开?
2014年09月04日 10点09分