设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3110|回复: 17
打印 上一主题 下一主题

[原创发布] 贴一个原创的不掉FPS的鼠标和键盘(For VX)

[复制链接]

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

跳转到指定楼层
1
发表于 2011-2-27 22:02:45 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 yangff 于 2011-3-5 08:03 编辑

http://rpg.blue/thread-168748-1-1.html
这个版本无Dll,夏娜真是好人

点评

[先封状dll然后^_^调用?]  发表于 2011-2-28 20:55

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

18
 楼主| 发表于 2011-3-6 11:21:01 | 只看该作者
本帖最后由 yangff 于 2011-3-6 11:21 编辑
苏小脉 发表于 2011-3-6 10:29
为啥?你不是自己写 Game.exe 么,在里面可以导出需要的函数,就可以像 DLL 一样动态调用。EXE 和 DLL 都 ...


= =那样太蛋疼了……我只是蛋疼的想一个API都看不到……
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
120
在线时间
953 小时
注册时间
2007-4-25
帖子
805
17
发表于 2011-3-6 10:29:23 | 只看该作者
yangff 发表于 2011-3-5 10:30
那样会多出来一个Dll

为啥?你不是自己写 Game.exe 么,在里面可以导出需要的函数,就可以像 DLL 一样动态调用。EXE 和 DLL 都可以看作动态连接库,只不过 EXE 有可执行的入口点,能直接被 OS 装载器装载执行
[email protected]:~> repeat 1 fortune
Matz is nice, so we are nice.
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

16
 楼主| 发表于 2011-3-5 10:30:17 | 只看该作者
苏小脉 发表于 2011-3-5 09:29
夏娜最早就是通过 SetWindowLong 来替换窗口过程函数的,直接在 RM 脚本获得执行权后调用,根本没必要走 ...

那样会多出来一个Dll
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
120
在线时间
953 小时
注册时间
2007-4-25
帖子
805
15
发表于 2011-3-5 09:29:00 | 只看该作者
yangff 发表于 2011-3-5 08:01
好了,解决了……
其实很简单,WinHook是拦截不到MOUSEHOOKSTRUCTEX的[需要DLL,提权代码导致250抽风]
但 ...

夏娜最早就是通过 SetWindowLong 来替换窗口过程函数的,直接在 RM 脚本获得执行权后调用,根本没必要走钩子这一关。我后来实现后台运行也是受了他启发
[email protected]:~> repeat 1 fortune
Matz is nice, so we are nice.
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

14
 楼主| 发表于 2011-3-5 08:01:46 | 只看该作者
苏小脉 发表于 2011-3-5 02:48
替换窗口过程的实例也不少了,沉影的鼠标脚本算一个,真·后台运行的工程也算一个,都可以参考嘛。直接在 ...

好了,解决了……
其实很简单,WinHook是拦截不到MOUSEHOOKSTRUCTEX的[需要DLL,提权代码导致250抽风]
但是RGSSMain会替换默认的Windows消息机制[也就是所谓的SetWindowsLong]
最后不得在HookWindowsMouse里面夹带了一段SetWindowslong[保证在RGSSMain之后执行XE]
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
120
在线时间
953 小时
注册时间
2007-4-25
帖子
805
13
发表于 2011-3-5 02:48:18 | 只看该作者
本帖最后由 苏小脉 于 2011-3-5 03:18 编辑
yangff 发表于 2011-3-4 18:11
首先WinHook里面wParam==WM_MOUSEWHEEL
其次本应该包含滚轮方向的lParam每次都会恒等一个固定的值
另外不 ...


替换窗口过程的实例也不少了,沉影的鼠标脚本算一个,真·后台运行的工程也算一个,都可以参考嘛。直接在窗口过程中处理消息,窃以为比装钩子方便。
至于钩子,你是用的 WH_MOUSE 类型的钩子?那如果使用一般的 MOUSEHOOKSTRUCT 是不带 delta 信息的,必须用 MOUSEHOOKSTRUCTEX

点评

窃。。。  发表于 2011-3-5 10:38
[email protected]:~> repeat 1 fortune
Matz is nice, so we are nice.
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

12
 楼主| 发表于 2011-3-4 18:11:23 | 只看该作者
本帖最后由 yangff 于 2011-3-4 18:13 编辑
苏小脉 发表于 2011-3-4 03:42
谁说的,处理 WM_MOUSEWHEEL 消息的时候,wParam 就包含了方向的信息。
滚轮的功能也不是没人写过,


首先WinHook里面wParam==WM_MOUSEWHEEL
其次本应该包含滚轮方向的lParam每次都会恒等一个固定的值
另外不知道为什么,游戏主进程进去之后就取不到winproc了= =[RPWT???]
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
120
在线时间
953 小时
注册时间
2007-4-25
帖子
805
11
发表于 2011-3-4 03:42:19 | 只看该作者
yangff 发表于 2011-2-28 18:50
滚轮只能识别滚动,拦截不到方向 = =

谁说的,处理 WM_MOUSEWHEEL 消息的时候,wParam 就包含了方向的信息。
滚轮的功能也不是没人写过,

沉影的鼠标脚本就有这个功能,当时我和她深入讨论过如何处理这个消息:
http://rpg.blue/forum.php?mod=viewthread&tid=147594
这里还有一个之前写的实例:
http://rpg.blue/forum.php?mod=viewthread&tid=154918

点评

真相就是沉影是姐姐(噗  发表于 2011-3-6 10:56
><求真相~~~  发表于 2011-3-6 10:39
不信拉倒 -v-  发表于 2011-3-5 11:10
大家别误会,脉子她经常喜欢打错字的。  发表于 2011-3-5 10:40
居然是她 O O||  发表于 2011-3-5 03:56
[email protected]:~> repeat 1 fortune
Matz is nice, so we are nice.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

RebeccaJackson

梦石
0
星屑
49
在线时间
106 小时
注册时间
2010-8-15
帖子
270
10
发表于 2011-2-28 22:36:47 | 只看该作者
好喂,考虑下用键盘喵

点评

= =  发表于 2011-3-2 22:01
0.0里昂姐的头像0.0  发表于 2011-2-28 23:11
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-7-28 04:05

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表