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

Project1

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

[已经解决] VX怎么实现后台操作?

[复制链接]

Lv2.观梦者

梦石
0
星屑
381
在线时间
238 小时
注册时间
2013-8-20
帖子
496
跳转到指定楼层
1
发表于 2014-4-22 18:41:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
XP是有的
但是VX没有找到
就是那种缩小到任务栏之后还是能继续进行游戏的功能
不定期回来6R玩。
下方广告帖,欢迎点击

Lv1.梦旅人

梦石
0
星屑
50
在线时间
27 小时
注册时间
2014-4-19
帖子
44
来自 5楼
发表于 2014-4-22 19:36:04 | 只看该作者
本帖最后由 奇奇‎ 于 2014-4-22 19:42 编辑

是这个
RUBY 代码复制
  1. unless $_Start
  2.   $_Start = Win32API.new("BackgroundRunning","Start",'V','L')
  3.   $_Stop = Win32API.new("BackgroundRunning","Stop",'V','L')
  4.   $_OnFocus = Win32API.new("BackgroundRunning","OnFocus",'V','L')
  5.  
  6.   $_Start.call
  7.  
  8.   module Input
  9.     InputUpdate = method :update
  10.     InputTrigger = method :trigger?
  11.     InputPress = method :press?
  12.     InputRepeat = method :repeat?
  13.     InputDir4 = method :dir4
  14.     InputDir8 = method :dir8
  15.     def self.update
  16.       InputUpdate.call if $_OnFocus.call != 0
  17.     end
  18.     def self.trigger?(num)
  19.       return $_OnFocus.call != 0 ? InputTrigger.call(num) : false
  20.     end
  21.     def self.press?(num)
  22.       return $_OnFocus.call != 0 ? InputPress.call(num) : false
  23.     end
  24.     def self.repeat?(num)
  25.       return $_OnFocus.call != 0 ? InputRepeat.call(num) : false
  26.     end
  27.     def self.dir4
  28.       return $_OnFocus.call != 0 ? InputDir4.call : 0   
  29.     end
  30.     def self.dir8
  31.       return $_OnFocus.call != 0 ? InputDir8.call : 0   
  32.     end
  33.   end
  34. end

差点忘了,还必须附上这个dll BackgroundRunning.rar (19.07 KB, 下载次数: 47)

评分

参与人数 2星屑 +92 收起 理由
丿梁丶小柒 + 80 认可答案
白魔导师宝儿 + 12 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

狂気の月兔

梦石
0
星屑
276
在线时间
1245 小时
注册时间
2009-4-7
帖子
879

贵宾

2
发表于 2014-4-22 18:52:14 | 只看该作者
搜索 紫苏大 的 <<真 后台运行>> 好像是这个名字.
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
381
在线时间
238 小时
注册时间
2013-8-20
帖子
496
3
 楼主| 发表于 2014-4-22 18:58:48 | 只看该作者
  1. #==============================================================================
  2. # [XP/VX] 精确获取窗口句柄 by 紫苏
  3. #==============================================================================
  4. # ■ Kernel
  5. #==============================================================================
  6. module Kernel
  7.   #--------------------------------------------------------------------------
  8.   # ● 需要的 Windows API 函数
  9.   #--------------------------------------------------------------------------
  10.   GetWindowThreadProcessId = Win32API.new("user32", "GetWindowThreadProcessId", "LP", "L")
  11.   GetWindow = Win32API.new("user32", "GetWindow", "LL", "L")
  12.   GetClassName = Win32API.new("user32", "GetClassName", "LPL", "L")
  13.   GetCurrentThreadId = Win32API.new("kernel32", "GetCurrentThreadId", "V", "L")
  14.   GetForegroundWindow = Win32API.new("user32", "GetForegroundWindow", "V", "L")
  15.   #--------------------------------------------------------------------------
  16.   # ● 获取窗口句柄
  17.   #--------------------------------------------------------------------------
  18.   def get_hwnd
  19.     # 获取调用线程(RM 的主线程)的进程标识
  20.     threadID = GetCurrentThreadId.call
  21.     # 获取 Z 次序中最靠前的窗口
  22.     hWnd = GetWindow.call(GetForegroundWindow.call, 0)
  23.     # 枚举所有窗口
  24.     while hWnd != 0
  25.       # 如果创建该窗口的线程标识匹配本线程标识
  26.       if threadID == GetWindowThreadProcessId.call(hWnd, 0)
  27.         # 分配一个 11 个字节的缓冲区
  28.         className = " " * 11
  29.         # 获取该窗口的类名
  30.         GetClassName.call(hWnd, className, 12)
  31.         # 如果匹配 RGSS Player 则跳出循环
  32.         break if className == "RGSS Player"
  33.       end
  34.       # 获取下一个窗口
  35.       hWnd = GetWindow.call(hWnd, 2)
  36.     end
  37.     return hWnd
  38.   end
  39. end

  40. module Kernel
  41.   GetActiveWindow = Win32API.new("user32", "GetActiveWindow", "V", "L")
  42.   def shit?
  43.     #return if Graphics.frame_count % 10 != 0
  44.     # 获取调用线程(RM 的主线程)的进程标识
  45.     threadID = GetCurrentThreadId.call
  46.     # 获取 Z 次序中最靠前的窗口
  47.     hWnd = GetActiveWindow.call#GetForegroundWindow.call
  48.     return true if threadID == GetWindowThreadProcessId.call(hWnd, 0)
  49.     return false
  50.     # 枚举所有窗口
  51.     #while hWnd != 0
  52.       # 如果创建该窗口的线程标识匹配本线程标识
  53.       #if threadID == GetWindowThreadProcessId.call(hWnd, 0)
  54.         # 分配一个 11 个字节的缓冲区
  55.         className = " " * 11
  56.         # 获取该窗口的类名
  57.         GetClassName.call(hWnd, className, 12)
  58.         # 如果匹配 RGSS Player 则跳出循环
  59.         $windowInfo.newText += (className + "")
  60.         #break if className == "RGSS Player"
  61.       #end
  62.       # 获取下一个窗口
  63.       #hWnd = GetWindow.call(hWnd, 2)
  64.     #end
  65.     #return hWnd
  66.   end
  67. end


  68. class << Input
  69.   alias shitmyoh trigger? unless $@
  70.   def Input.trigger?(input)
  71.     return false if !shit?#GetWindow.call(GetForegroundWindow.call, 0) != 0 &&
  72.     shitmyoh(input)
  73.   end
  74.   
  75. end
复制代码
难道指的是这个{:7_297:}
可是好像没有效果呢{:7_298:}

@铃仙·优昙华院·因幡  
不定期回来6R玩。
下方广告帖,欢迎点击
回复 支持 反对

使用道具 举报

Lv2.观梦者

狂気の月兔

梦石
0
星屑
276
在线时间
1245 小时
注册时间
2009-4-7
帖子
879

贵宾

4
发表于 2014-4-22 19:24:41 | 只看该作者
不是这个, 这个是句柄, 用来弄一些高级脚本用的. 还有一个.
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 15:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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