模拟鼠标向下滚动 http://bbs.2ccc.com/topic.asp?topicid=461769
我想模拟鼠标滚轮,下面的代码能向上滚动,怎么样下向滚动啊
mouse_event( MOUSEEVENTF_WHEEL,0,0,WHEEL_DELTA,0); 我把参数设置为 |
|
作者: |
|
2014-8-23 17:09:14 | ||||
1楼: | http://baike.baidu.com/view/1080208.htm?fr=aladdin
自己注意看 dwData |
作者: |
|
2014-8-23 17:37:56 | ||||
2楼: | 鎴戞槸鐢ㄧ殑delphi锛岄偅涓弬鏁颁笉鑳戒负璐熷晩锛岃礋鐨勪笉鑳界紪缁? ---------------------------------------------- - |
作者: |
|
2014-8-23 17:38:34 | ||||
3楼: | 鎴戞槸鐢ㄧ殑delphi锛岄偅涓弬鏁颁笉鑳戒负璐熷晩锛岃礋鐨勪笉鑳界紪缁? ---------------------------------------------- - |
作者: |
|
2014-8-23 19:42:23 | ||||
4楼: | 泰达星语,看懂啊,楼上 ---------------------------------------------- 还可以更好 |
作者: |
|
2014-8-23 21:34:42 | ||||
5楼: | 我用的是DELPHI XE6,mouse_event( MOUSEEVENTF_WHEEL,0,0,WHEEL_DELTA,0);这个代码只能往上移,百度说,往上为正,往下为负,但设置-WHEEL_DELTA 或 -10等 数值,都不能编译。 谁能教教我啊 ---------------------------------------------- - |
作者: |
|
2014-8-25 10:14:26 | ||||
6楼: | 没有人知道吗 ---------------------------------------------- - |
作者: |
|
2014-8-26 10:24:39 | ||||
7楼: | var i:integer; begin i:=-120; mouse_event( MOUSEEVENTF_WHEEL,0,0,i,0) end; 这样是可以编译通过的 , 但是是否可以运行 ,请自行测试 |
作者: |
|
2014-8-26 10:28:26 | ||||
8楼: | 如果不是看到楼上,我居然没看出楼主的语法错误。 也没看到,楼主不是代码没效果。 而是,编译不通过。 幸亏,从来没发言,不然就糗大了。 ---------------------------------------------- (C)(P)Flying Wang |
作者: |
|
2014-8-26 10:38:39 | ||||
9楼: | 依赖Delphi自身不是太好的习惯,Delphi也是在翻写Windows的API,还是向微软靠拢,深入研究的好。
WHEEL_DELTA 可以看一下Delphi内的定义,直接写死了 120 ,正数,表示正向 滚轮一圈。而微软的API呢 ,可以查MSDN的英文版,和百度百科上的中文解释是一样的,明确说明,负数表示反向。 我今天看了楼主的回复,实验了一下,的确编译不过,但是自己用变量呢,因为变量要在运行的时候赋值,编译的时候是无法检测的,肯定就可以编译了。但是楼主没给出具体的代码,是否可以运行,是否有效果,需要实际测试! |
作者: |
|
2014-8-26 10:45:55 | ||||
10楼: | 楼主和楼上的请写 0 - WHEEL_DELTA 你们不懂啥叫语法吗? 特别是楼上,你不懂语法还敢搞开发? 不过深入研究是对的(给楼上面子,居然不领情!)。 但是,你先把基础搞好,在深入也不迟! 好吧,刚才我也是纸上谈兵。下面的代码才是符合函数调用规则的。 |
作者: |
|
2014-8-26 11:08:22 | ||||
11楼: | To : Flying Wang
Delphi编译器的代码你看过? 我是没看过的,至于说语法跟编译器自身有没有直接关联,语法的规则是编译器定的,编译器编译不过,你说语法没问题,它就是不给你编译,你能怎么办? 至于说基础,我感觉你还没资格来说这话,你什么时间把Win3.1的内核分析读透彻,什么是把Win2000的代码多读几遍再给我说基础吧。 0 - WHEEL_DELTA = -120 编译器能检测到是负值,不编译的,你如果不能看明白我说的含义,请闭上你高贵的嘴 另外,向微软靠拢没有错,除非你不开发windows平台的软件。 |
作者: |
|
2014-8-26 11:19:44 | ||||
12楼: | 我们的语法是看人家 DELPHI 教程来的。 人家 DELPHI 编译器肯定支持 教程中的语法。 不支持的,我们也学不到。 你那是高端内容,我们先学的是基础,基础有 然后是 DELPHI 入门 这些都会了,才能表示你懂基础。 有一点点的不会,那就是基础不行。 你 WIN3.1 的内核 懂得再多。也都属于高端内容。和基础无关。 另外,我们应该向 LINUX 靠拢了,这是未来趋势。 刚才我是纸上谈兵,没去具体试试。 mouse_event( MOUSEEVENTF_WHEEL,0,0,DWORD(0 - WHEEL_DELTA),0); |
作者: |
|
2014-8-26 11:26:49 | ||||
13楼: | 问题是人家楼主说了,是编译器编译不过,那么你能去改编译器?我只不过告诉楼主如何去做,实际上能编译,是一个解决方法。
你讲语法,讲到天亮,编译器不给你编译,有什么用? 去研究一下编译器,再来给我说教吧,推荐你去研究一下Dev C++ 至于懂基础,还不是你有资格说的,我是从DOS下用Turbo Pascal写到现在的,你说的课程哪个大学的计算机课程没教,难道就你读过书是怎么滴。 向Linux靠拢? 别告诉我你现在用的是Linux |
作者: |
|
2014-8-26 11:31:24 | ||||
14楼: | 楼上的看不懂我的意思,是我的错,我的语文是体育老师教的。
我哪里说过要改 编译器的? 我们有那个水平,还在这里混? 地球人对付 编译不过的标准做法不是修改自己的代码吗? 你语法都不懂,还能写出代码来? 你语法错误,不去改你自己的错误,你居然能理解成,修改编译器? 懒得理你这种思维奇怪的家伙。 |
作者: |
|
2014-8-26 11:47:54 | ||||
15楼: | Flying Wang:你是不是从精神病院出来的? 我写的代码你编译一下试试,哪个地方错误??神经病 ---------------------------------------------- - |
作者: |
|
2014-8-26 11:49:19 | ||||
16楼: | 楼上的,老子可没说你代码有错误。
告诉你一个其他代码,不表示你的代码就有错误。 |
作者: |
|
2014-8-26 11:54:40 | ||||
17楼: | 。 ---------------------------------------------- - |
作者: |
|
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的负数范围。 ---------------------------------------------- - |
作者: |
|
2014-8-26 15:43:15 | ||||
19楼: | 楼上分析的很对。 ---------------------------------------------- (C)(P)Flying Wang |
作者: |
|
2014-8-27 8:59:16 | ||||
20楼: | 一个无符号类型数值的负数表示法而已....其实Flying Wang说的对, 楼主你基础不行, 参数类型规定是无符号的, 不代表就不能传递负数, 内核 2000源码什么的扯的太远了
楼主连最基本的数据在内存中表示方式和存储方式都还不清楚呢... 最简单的例子: y := -100; 吧X打印出来看看值是多少, 其实有没有符号什么的都是浮云, 关键是数据位, 只要长度一致, 值是多少只取决于你怎么去理解 |
作者: |
|
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似乎有点过于高人的表现,我不怎么认可此种态度。至于以后的争论,本人概不参与。以后论坛的问题呢,也概不回答了,避免出现类似的纠结性的争论出现。 |
作者: |
|
2014-8-27 10:17:30 | ||||
22楼: | 我说你没基础,的确是我的错。
因为 我没注意到你谈的是 编译器。 我只注意到,你忽略语法错误。 我只是认为,明明是语法错误,不应该谈一些和该错误无关的内容。 我知道你的代码没问题,只是没有明确说出来。 我一开始说你没基础,是因为你不谈语法,去谈编译器。 看上去没基础。事实上你很厉害。但是,我一开始不知道你厉害。 而且,不能因为你厉害,就忽略语法错误的问题。 |
作者: |
|
2014-8-27 21:30:23 | ||||
23楼: | 搞程序的最不缺的就是固执自负的人。不管是群里还是论坛上,总会有人在别人问问题的时候以一种高姿态的方式去俯视提问者。这个帖子里虽然没有俯视提问者,但是却针对了其他回答者。
老子天下第一,其他人都是傻逼。是不是在网上喷一下别人可以让自己很有优越感? 本来delphi的学习环境就不好了。一个问题居然能引来这样的争论。这下好了,又少了一个可以解答问题的高手。 奉劝一句那些自以为自己很牛B的人,不针对wang_80919 (Flying Wang),也不针对pcspace (庸人)。 |
作者: |
|
2014-8-28 5:43:32 | ||||
24楼: | 各们一不要争了,问题已经解决了,谢谢各位大神,特别谢谢 pcspace (庸人),按照你的方法解决了 ---------------------------------------------- - |
作者: |
|
2014-8-28 16:04:16 | ||||
25楼: | 这论坛很热闹嘛 有趣。。。 pcspace的这个是用的范围广,刚试试别的lang,这样搞真行。 wang_80919说的语法的,不怎么会Delphi不敢说。 |
模拟鼠标向下滚动 http://bbs.2ccc.com/topic.asp?topicid=461769的更多相关文章
- Delphi下利用WinIo模拟鼠标键盘详解 有参考价值
https://blog.csdn.net/fgrass_163/article/details/6365296 Delphi下利用WinIo模拟鼠标键盘详解 2011年04月26日 21:03:00 ...
- JS判断鼠标向上滚动还是向下滚动
js如何判断滚轮的上下滚动,我们应该都见到过这种效果,用鼠标滚轮实现某个表单内的数字向上滚动就增加,向下滚动就减少的操作,这种效果是通过js对鼠标滚轮的事件监听来实现的.今天简单的研究了一下如何使用j ...
- linux下如何模拟按键输入和模拟鼠标【转】
转自:http://www.cnblogs.com/leaven/archive/2010/11/30/1891947.html 查看/dev/input/eventX是什么类型的事件, cat /p ...
- JS如何判断鼠标滚轮向上还是向下滚动
前几天偶然看到某前端群有人在问:JS如何判断鼠标滚轮向上还是向下滚动? 我想了想,有点蒙蔽,心想难道不是用scrollTop来判断吗? 但我不确定,也出于好奇心,于是开始了一番探索 思路:通过even ...
- selenium webdriver从安装到使用(python语言),显示等待和隐性等待用法,切换窗口或者frame,弹框处理,下拉菜单处理,模拟鼠标键盘操作等
selenium的用法 selenium2.0主要包含selenium IDE 和selenium webDriver,IDE有点类似QTP和LoadRunner的录制功能,就是firefox浏览器的 ...
- python模拟鼠标键盘操作 GhostMouse tinytask 调用外部脚本或程序 autopy右键另存为
0.关键实现:程序窗口前置 python 通过js控制滚动条拉取全文 通过psutil获取pid窗口句柄,通过win32gui使程序窗口前置 通过pyauto实现右键菜单和另存为操作 1.参考 aut ...
- 使用Robot类模拟鼠标、键盘事件
Robot类用于模拟鼠标.键盘事件,生成本机系统输入事件.Robot 的主要用于自动化.自运行的程序和其他需要自动控制鼠标和键盘的程序 相当于实际操作的效果,不仅仅只是生成对应的鼠标.键盘事件.比如R ...
- C# 模拟鼠标移动和点击
我们需要用到的mouse_event函数,位于user32.dll这个库文件里面,所以我们要先声明引用. [System.Runtime.InteropServices.DllImport(" ...
- C#模拟鼠标、键盘操作
C语言 在程序中打开网页,模拟鼠标点击.键盘输入 一.简述 记--使用C语言 打开指定网页,并模拟鼠标点击.键盘输入.实现半自动填写账号密码,并登录网站(当然现在的大部分网站都有验证码 ...
随机推荐
- react搭建
https://juejin.im/post/5b4de4496fb9a04fc226a7af
- Java httpClint实现文件上传
Maven依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId&g ...
- tee 多重定向
1.命令功能 tee读取标准输入的数据,并将内容输出成文件. 2.语法格式 tee option file tee [-ai] 文件 参数说明 参数 参数说明 -a 追加到文件后面,非覆盖 - ...
- [洛谷P4438] HNOI2018 道路
问题描述 W 国的交通呈一棵树的形状.W 国一共有n - 1个城市和n个乡村,其中城市从1到n - 1 编号,乡村从1到n编号,且1号城市是首都.道路都是单向的,本题中我们只考虑从乡村通往首都的道路网 ...
- H5是什么?
找工作面试官都会问你H5吗? 然后做一个前端的我一脸蒙蔽,到底什么是H5? 一般来说刚开始H5 是 Html5标准的简称,但是仅仅是html5标签,几乎什么也做不出来了,最多就是个静态网页,还得用到j ...
- flask入门,Hello World!
flask这个框架简单易用,去年2018的使用份额已经快接近django了.入门首选,没有太多的要求. 接下来,写个Hello World吧 1.新手入门,如果你是在windows下使用的,需要先安装 ...
- React Native 之项目的启动
运行项目有两种方法 1. 到根目录,执行 react-native run-ios 命令 会开启一个本地服务,加载jsbundle文件,然后是去index.js文件 import {AppRegist ...
- SpringBoot搭建基于Spring+SpringMvc+Mybatis的REST服务
Maven Plugin管理 通常,让你的Maven POM文件继承 spring-boot-starter-parent,并声明一个或多个 Starter POMs依赖即可. spring-boot ...
- php array_unshift()函数 语法
php array_unshift()函数 语法 作用:用于向数组插入新元素.新数组的值将被插入到数组的开头.富瑞华 语法:array_unshift(array,value1,value2,valu ...
- 一、Nginx常见问题
1.相同server_name多个虚拟主机优先级访问 最先读取哪个配置文件,就访问那个的网页 2.location匹配优先级 相同location,会被后面的覆盖 匹配优先级更高的,找后面的 = ...