【羊毛羊的奇葩教程】pascal截图功能
pascal吧
全部回复
仅看楼主
level 9
一楼度娘
二楼备用
三楼开始上教程
2014年08月30日 04点08分 1
level 9
二楼备用
2014年08月30日 04点08分 2
level 9
@Meau_遗忘 @猎火电脑工作室 @洋葱超人008 @Fallen_Breath @罗不理 @fp4869 @4533大多数 @12345yhgv @canadaottawa
2014年08月30日 05点08分 6
回复 风x千叶翔龙V :教程开始
2014年08月30日 05点08分
level 9
准备工作:
1.一个正常的FP编译器
2.一台正常的windows电脑【七喜什么的滚边[喷]
3.一个正常的虚拟键值对照表
2014年08月30日 05点08分 8
[委屈]
2014年08月30日 06点08分
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分
level 9
爪机作死,明天再发
2014年08月30日 06点08分 16
[啊]
2014年08月30日 06点08分
1