我想模拟鼠标滚轮,下面的代码能向上滚动,怎么样下向滚动啊

mouse_event( MOUSEEVENTF_WHEEL,0,0,WHEEL_DELTA,0);

我把参数设置为
mouse_event( MOUSEEVENTF_WHEEL,0,0,-WHEEL_DELTA,0);
编译通不过啊
----------------------------------------------
-

作者:
pcspace (庸人) ▲▲▲▲▲ -
盒子活跃会员
2014-8-23 17:09:14
1楼: http://baike.baidu.com/view/1080208.htm?fr=aladdin

自己注意看  dwData
----------------------------------------------
-

作者:
xfyserver (s) ▲▲▲▲▲ -
普通会员
2014-8-23 17:37:56
2楼: 鎴戞槸鐢ㄧ殑delphi锛岄偅涓弬鏁颁笉鑳戒负璐熷晩锛岃礋鐨勪笉鑳界紪缁?
----------------------------------------------
-
作者:
xfyserver (s) ▲▲▲▲▲ -
普通会员
2014-8-23 17:38:34
3楼: 鎴戞槸鐢ㄧ殑delphi锛岄偅涓弬鏁颁笉鑳戒负璐熷晩锛岃礋鐨勪笉鑳界紪缁?
----------------------------------------------
-
作者:
ptdelphi (Delphi) ▲▲△△△ -
注册会员
2014-8-23 19:42:23
4楼: 泰达星语,看懂啊,楼上
----------------------------------------------
还可以更好
作者:
xfyserver (s) ▲▲▲▲▲ -
普通会员
2014-8-23 21:34:42
5楼: 我用的是DELPHI XE6,mouse_event( MOUSEEVENTF_WHEEL,0,0,WHEEL_DELTA,0);这个代码只能往上移,百度说,往上为正,往下为负,但设置-WHEEL_DELTA 或 -10等 数值,都不能编译。
谁能教教我啊
----------------------------------------------
-
作者:
xfyserver (s) ▲▲▲▲▲ -
普通会员
2014-8-25 10:14:26
6楼: 没有人知道吗
----------------------------------------------
-
作者:
pcspace (庸人) ▲▲▲▲▲ -
盒子活跃会员
2014-8-26 10:24:39
7楼: var
i:integer;
begin
i:=-120;
mouse_event( MOUSEEVENTF_WHEEL,0,0,i,0)
end;

这样是可以编译通过的 , 但是是否可以运行 ,请自行测试
----------------------------------------------
-

作者:
wang_80919 (Flying
Wang)
▲▲▲▲△ -
普通会员
2014-8-26 10:28:26
8楼: 如果不是看到楼上,我居然没看出楼主的语法错误。
也没看到,楼主不是代码没效果。
而是,编译不通过。
幸亏,从来没发言,不然就糗大了。
----------------------------------------------

(C)(P)Flying Wang
作者:
pcspace (庸人) ▲▲▲▲▲ -
盒子活跃会员
2014-8-26 10:38:39
9楼: 依赖Delphi自身不是太好的习惯,Delphi也是在翻写Windows的API,还是向微软靠拢,深入研究的好。

WHEEL_DELTA 可以看一下Delphi内的定义,直接写死了 120 ,正数,表示正向 滚轮一圈。而微软的API呢 ,可以查MSDN的英文版,和百度百科上的中文解释是一样的,明确说明,负数表示反向。

我今天看了楼主的回复,实验了一下,的确编译不过,但是自己用变量呢,因为变量要在运行的时候赋值,编译的时候是无法检测的,肯定就可以编译了。但是楼主没给出具体的代码,是否可以运行,是否有效果,需要实际测试!
----------------------------------------------
-

作者:
wang_80919 (Flying
Wang)
▲▲▲▲△ -
普通会员
2014-8-26 10:45:55
10楼: 楼主和楼上的请写
0 - WHEEL_DELTA

你们不懂啥叫语法吗?

特别是楼上,你不懂语法还敢搞开发?
还说什么向微软靠拢?

不过深入研究是对的(给楼上面子,居然不领情!)。

但是,你先把基础搞好,在深入也不迟!

好吧,刚才我也是纸上谈兵。下面的代码才是符合函数调用规则的。
  mouse_event( MOUSEEVENTF_WHEEL,0,0,DWORD(0 - WHEEL_DELTA),0);
----------------------------------------------

(C)(P)Flying Wang

作者:
pcspace (庸人) ▲▲▲▲▲ -
盒子活跃会员
2014-8-26 11:08:22
11楼: To : Flying Wang

Delphi编译器的代码你看过? 我是没看过的,至于说语法跟编译器自身有没有直接关联,语法的规则是编译器定的,编译器编译不过,你说语法没问题,它就是不给你编译,你能怎么办?

至于说基础,我感觉你还没资格来说这话,你什么时间把Win3.1的内核分析读透彻,什么是把Win2000的代码多读几遍再给我说基础吧。

0 - WHEEL_DELTA = -120  编译器能检测到是负值,不编译的,你如果不能看明白我说的含义,请闭上你高贵的嘴

另外,向微软靠拢没有错,除非你不开发windows平台的软件。
----------------------------------------------
-

作者:
wang_80919 (Flying
Wang)
▲▲▲▲△ -
普通会员
2014-8-26 11:19:44
12楼: 我们的语法是看人家 DELPHI 教程来的。
人家 DELPHI 编译器肯定支持 教程中的语法。
不支持的,我们也学不到。

你那是高端内容,我们先学的是基础,基础有
计算机原理
离散数学
数据结构
数据库
操作系统
软件工程
某种编程语言

然后是 DELPHI 入门
然后是 DELPHI 开发。

这些都会了,才能表示你懂基础。

有一点点的不会,那就是基础不行。

你 WIN3.1 的内核 懂得再多。也都属于高端内容。和基础无关。

另外,我们应该向 LINUX 靠拢了,这是未来趋势。

刚才我是纸上谈兵,没去具体试试。
现在告诉你正确答案。
这是语法的基础问题,mouse_event 是一个函数,调用函数,需要提供正确的数据类型,发现错误,就应该知道如何去修改,而不是找外部责任。其实还是自己基础差,连一个语法错误都不知道如何修改!

mouse_event( MOUSEEVENTF_WHEEL,0,0,DWORD(0 - WHEEL_DELTA),0);
----------------------------------------------

(C)(P)Flying Wang

作者:
pcspace (庸人) ▲▲▲▲▲ -
盒子活跃会员
2014-8-26 11:26:49
13楼: 问题是人家楼主说了,是编译器编译不过,那么你能去改编译器?我只不过告诉楼主如何去做,实际上能编译,是一个解决方法。

你讲语法,讲到天亮,编译器不给你编译,有什么用?

去研究一下编译器,再来给我说教吧,推荐你去研究一下Dev C++

至于懂基础,还不是你有资格说的,我是从DOS下用Turbo Pascal写到现在的,你说的课程哪个大学的计算机课程没教,难道就你读过书是怎么滴。

向Linux靠拢? 别告诉我你现在用的是Linux
----------------------------------------------
-

作者:
wang_80919 (Flying
Wang)
▲▲▲▲△ -
普通会员
2014-8-26 11:31:24
14楼: 楼上的看不懂我的意思,是我的错,我的语文是体育老师教的。

我哪里说过要改 编译器的?

我们有那个水平,还在这里混?

地球人对付 编译不过的标准做法不是修改自己的代码吗?
修改自己的代码,直到编译通过为止啊。
不懂语法,能知道如何修改吗?
还有,除了要修改语法错误,还要记得,别搞出逻辑错误。

你语法都不懂,还能写出代码来?

你语法错误,不去改你自己的错误,你居然能理解成,修改编译器?

懒得理你这种思维奇怪的家伙。
----------------------------------------------

(C)(P)Flying Wang

作者:
pcspace (庸人) ▲▲▲▲▲ -
盒子活跃会员
2014-8-26 11:47:54
15楼: Flying Wang:你是不是从精神病院出来的? 我写的代码你编译一下试试,哪个地方错误??神经病
----------------------------------------------
-
作者:
wang_80919 (Flying
Wang)
▲▲▲▲△ -
普通会员
2014-8-26 11:49:19
16楼: 楼上的,老子可没说你代码有错误。

告诉你一个其他代码,不表示你的代码就有错误。
----------------------------------------------

(C)(P)Flying Wang

作者:
pcspace (庸人) ▲▲▲▲▲ -
盒子活跃会员
2014-8-26 11:54:40
17楼:  。
----------------------------------------------
-
作者:
crystalmoon (黑夜杀手) ▲▲▲▲▲ -
盒子活跃会员
2014-8-26 15:32:48
18楼: 干嘛这么激烈呢,把问题说清楚不就得了。我的基础也不好,不过我知道百度和看源代码定义,所以我把我找到的情况写一下:
其实要看楼主为什么编译没有通过,原因是Delphi对mouse_event的定义(在Windows单元中),参数中第四个的类型是DWORD,DWORD=LongWord,那么它的范围是什么?32位,无正负符号标志,也就是0~4 294 967 295,好吧,这样子,楼主用负数来写,编译器肯定会出错(提示你范围边界出错 violates subrange bounds)。
pcspace所说用负数,来源于(http://msdn.microsoft.com/en-us/library/ms646260(VS.85).aspx):If dwFlags contains MOUSEEVENTF_WHEEL, then dwData specifies the amount of wheel movement. A positive value indicates that the wheel was rotated forward, away from the user; a negative value indicates that the wheel was rotated backward, toward the user. One wheel click is defined as WHEEL_DELTA, which is 120.,但我比较好奇的是DWORD难道在其它地方是可以负数的吗?所以我有必要怀疑微软的档案定义有问题,可能这里不是DWORD,而可能是一个有符号的类型(比如int32),pcspace用 i:integer;来写,实际做了一个隐形转换 DWORD(I),结果是什么?我测试了一下,是4294967176,经测试只要你这样子写
mouse_event( MOUSEEVENTF_WHEEL,0,0,4294967176,0);它就是下向滚动的,那什么下向滚的范围是多少呢?4294967176 downto 2147443648 (数字越小,跨度越大),这也映证了我的猜测,为什么?因为int32的范围  -2147443648 到 2147443647,假设它把DWORD的最高位当成符号位,它DWORD的(2147443648 - 4294967176) 就相当于是int32的负数范围。
----------------------------------------------
-
作者:
wang_80919 (Flying
Wang)
▲▲▲▲△ -
普通会员
2014-8-26 15:43:15
19楼: 楼上分析的很对。
----------------------------------------------

(C)(P)Flying Wang
作者:
hs_kill (hs_kill) ▲▲▲▲▲ -
普通会员
2014-8-27 8:59:16
20楼: 一个无符号类型数值的负数表示法而已....其实Flying Wang说的对, 楼主你基础不行, 参数类型规定是无符号的, 不代表就不能传递负数, 内核 2000源码什么的扯的太远了

楼主连最基本的数据在内存中表示方式和存储方式都还不清楚呢...

最简单的例子: 
x: Byte; {UINT8}
y: ShortInt; {INT8}

y := -100;
Move(y, x, sizeof(y));

吧X打印出来看看值是多少, 其实有没有符号什么的都是浮云, 关键是数据位, 只要长度一致, 值是多少只取决于你怎么去理解
----------------------------------------------
http://www.cnblogs.com/hs-kill/

作者:
pcspace (庸人) ▲▲▲▲▲ -
盒子活跃会员
2014-8-27 9:59:15
21楼: 我谈一下我的观点。Delphi的编译器是将程序编译好,程序本质上是调用的Windows的API,这是我所说的为什么要紧跟微软的原因,只要程序编译了,API运行起来就可以。

crystalmoon 说的在理,不管是我的方法还是 Flying Wang的做法,都是用了变量,我怀疑编译器在编译的时候,是不会去检测变量方式的。

hs_kill  说的2000的代码是有意义的,因为最终编译的结果是要基于操作系统的。脱离操作系统去谈编译没意义。

最后解释一下整个争论,我看到楼主的提问,就给楼主找了一下资料,因为一直是搜MSDN的,所以对微软的东西很少去怀疑(不是说微软的东西没BUG,而是因为官方的东西正确的可能性非常非常的大)

第二次呢,上来看了一下,楼主回复说,无法编译,我就随手写了代码测试了一下,可行,然后就放上来,这也是给楼主的一个例子罢了。

写这个代码,因为我猜测编译器在编译常量可以检测,编译变量无法检测,没去多想别的。

Flying Wang 的回复后,我接着回复的本意是从编译器的角度试图分析这个问题,而没有过多的去纠结语法什么的,也根本没考虑这个问题,包括很多Delphier平时习惯拿来就用,不去考虑深层次的问题,这些不管大家是否承认,但是的确存在。

但是Flying Wang的回复,没基础等等,这个话呢,说实在我感觉Wang真没资格说,看资料Wang似乎是80年的吧,我是78的,96年开始写程序,最初是用的C,后来上大学学Turo C,接触到Turbo Pascal,再后来Delphi也用,虽然因为工作原因很少用Delphi,但是我个人认为编程语言呢,是编译器最终定义出来的,语法这些东西不要过于去纠缠它,我的理解是不同的语言,基础语法大同小异,曾经有一段时间因为不同的编程语言交叉着用,结果经常会,在A语言内用B的语法,最后我才坚决的用最简易的教学式的语法,这样各种语言内基本都能通用。

最后还是声明一下,我的回复过多的是基于原理去考虑,给出的代码也是给楼主的问题一个变通的答案,跟Flying Wang的争论是因为Wang似乎有点过于高人的表现,我不怎么认可此种态度。至于以后的争论,本人概不参与。以后论坛的问题呢,也概不回答了,避免出现类似的纠结性的争论出现。
----------------------------------------------
-

作者:
wang_80919 (Flying
Wang)
▲▲▲▲△ -
普通会员
2014-8-27 10:17:30
22楼: 我说你没基础,的确是我的错。

因为 我没注意到你谈的是 编译器。

我只注意到,你忽略语法错误。

我只是认为,明明是语法错误,不应该谈一些和该错误无关的内容。

我知道你的代码没问题,只是没有明确说出来。

我一开始说你没基础,是因为你不谈语法,去谈编译器。

看上去没基础。事实上你很厉害。但是,我一开始不知道你厉害。

而且,不能因为你厉害,就忽略语法错误的问题。
----------------------------------------------

(C)(P)Flying Wang

作者:
lwsxln (lwsxln) ▲▲▲△△ -
注册会员
2014-8-27 21:30:23
23楼: 搞程序的最不缺的就是固执自负的人。不管是群里还是论坛上,总会有人在别人问问题的时候以一种高姿态的方式去俯视提问者。这个帖子里虽然没有俯视提问者,但是却针对了其他回答者。

老子天下第一,其他人都是傻逼。是不是在网上喷一下别人可以让自己很有优越感?

本来delphi的学习环境就不好了。一个问题居然能引来这样的争论。这下好了,又少了一个可以解答问题的高手。

奉劝一句那些自以为自己很牛B的人,不针对wang_80919 (Flying Wang),也不针对pcspace (庸人)。
----------------------------------------------
-

作者:
xfyserver (s) ▲▲▲▲▲ -
普通会员
2014-8-28 5:43:32
24楼: 各们一不要争了,问题已经解决了,谢谢各位大神,特别谢谢  pcspace (庸人),按照你的方法解决了
----------------------------------------------
-
作者:
cdp85 (cdp) ▲▲△△△ -
注册会员
2014-8-28 16:04:16
25楼: 这论坛很热闹嘛 有趣。。。
pcspace的这个是用的范围广,刚试试别的lang,这样搞真行。
wang_80919说的语法的,不怎么会Delphi不敢说。

模拟鼠标向下滚动 http://bbs.2ccc.com/topic.asp?topicid=461769的更多相关文章

  1. Delphi下利用WinIo模拟鼠标键盘详解 有参考价值

    https://blog.csdn.net/fgrass_163/article/details/6365296 Delphi下利用WinIo模拟鼠标键盘详解 2011年04月26日 21:03:00 ...

  2. JS判断鼠标向上滚动还是向下滚动

    js如何判断滚轮的上下滚动,我们应该都见到过这种效果,用鼠标滚轮实现某个表单内的数字向上滚动就增加,向下滚动就减少的操作,这种效果是通过js对鼠标滚轮的事件监听来实现的.今天简单的研究了一下如何使用j ...

  3. linux下如何模拟按键输入和模拟鼠标【转】

    转自:http://www.cnblogs.com/leaven/archive/2010/11/30/1891947.html 查看/dev/input/eventX是什么类型的事件, cat /p ...

  4. JS如何判断鼠标滚轮向上还是向下滚动

    前几天偶然看到某前端群有人在问:JS如何判断鼠标滚轮向上还是向下滚动? 我想了想,有点蒙蔽,心想难道不是用scrollTop来判断吗? 但我不确定,也出于好奇心,于是开始了一番探索 思路:通过even ...

  5. selenium webdriver从安装到使用(python语言),显示等待和隐性等待用法,切换窗口或者frame,弹框处理,下拉菜单处理,模拟鼠标键盘操作等

    selenium的用法 selenium2.0主要包含selenium IDE 和selenium webDriver,IDE有点类似QTP和LoadRunner的录制功能,就是firefox浏览器的 ...

  6. python模拟鼠标键盘操作 GhostMouse tinytask 调用外部脚本或程序 autopy右键另存为

    0.关键实现:程序窗口前置 python 通过js控制滚动条拉取全文 通过psutil获取pid窗口句柄,通过win32gui使程序窗口前置 通过pyauto实现右键菜单和另存为操作 1.参考 aut ...

  7. 使用Robot类模拟鼠标、键盘事件

    Robot类用于模拟鼠标.键盘事件,生成本机系统输入事件.Robot 的主要用于自动化.自运行的程序和其他需要自动控制鼠标和键盘的程序 相当于实际操作的效果,不仅仅只是生成对应的鼠标.键盘事件.比如R ...

  8. C# 模拟鼠标移动和点击

    我们需要用到的mouse_event函数,位于user32.dll这个库文件里面,所以我们要先声明引用. [System.Runtime.InteropServices.DllImport(" ...

  9. C#模拟鼠标、键盘操作

    C语言 在程序中打开网页,模拟鼠标点击.键盘输入 一.简述         记--使用C语言 打开指定网页,并模拟鼠标点击.键盘输入.实现半自动填写账号密码,并登录网站(当然现在的大部分网站都有验证码 ...

随机推荐

  1. 如何获取图片的base64编码

    1.准备一张图片,比如1.gif 2.使用chrome浏览器,新建立一个窗口,然后将a.png拖动至浏览器窗口里面,打开控制台(检查),最后点击source 3.使用方法: 注意source获取的一串 ...

  2. vue中获取滚动table的可视页面宽度,调整表头与列对齐(每列宽度不都相同)

    mounted() { // 在mounted中监听表格scroll事件 this.$refs.scrollTable.addEventListener( 'scroll',(event) => ...

  3. JavaScript生成简单数字验证码

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...

  4. 来到园子的第two天!!!!!

    经过这几天的打字练习  从练习的第一天到今天(应该是第三天吧) 从67到133字/分钟,我练的是英文文章测试,总的来说挺不容易 ,感觉后几天提升就不好提了呀 不说废话了  简单说一下今天的收获吧 都是 ...

  5. C#索引器3 重载

    7.索引器  重载 public class Demo { private Hashtable name = new Hashtable(); public string this[int index ...

  6. ocvate常用函数

    1.生成矩阵相关 https://www.coursera.org/learn/machine-learning/lecture/9fHfl/basic-operations 1. 初始化矩阵 a = ...

  7. Provider增删改查

    package com.fei.provider; import org.apache.ibatis.jdbc.SQL; import com.fei.domain.User; public clas ...

  8. unittest-mock-from-import

    https://stackoverflow.com/questions/11351382/mock-patching-from-import-statement-in-python

  9. 【GDOI2014模拟】雨天的尾巴

    题目 深绘里一直很讨厌雨天. 灼热的天气穿透了前半个夏天,后来一场大雨和随之而来的洪水,浇灭了一切. 虽然深绘里家乡的小村落对洪水有着顽固的抵抗力,但也倒了几座老房子,几棵老树被连 根拔起,以及田地里 ...

  10. 【GDOI2016模拟3.10】习用之语

    前言 这道题看上去很水,结果我在比赛上浪费了N多时间在上面,但还是没AC.比赛结束后发现:实际上这道题还是是大水. 题目 分析 设字符串c1c2c3c4,其中c1.c2.c3.c4={'0'~'9', ...