Project1

标题: RM的后台运行的神奇发现 [打印本页]

作者: orochi2k    时间: 2009-5-24 19:47
标题: RM的后台运行的神奇发现
在RM的MAIN的$scene = Scene_Title.new前写的东东貌似完全可以后台执行
于是……大家有啥感想-_-0
今天尝试拿RM去吞掉TORQUE时发现的
作者: 紫苏    时间: 2009-5-24 20:33
其实在任意处加上这样一段:
a = 0
while true
  a += 1
  File.open(a.to_s, "w") {}
  sleep 1
end

然后让 RM 窗口失去焦点,刷新游戏工程目录就能看到效果了,一秒一个~{/hx}
但是如果在循环中加上 Graphics.update,就没有这个效果了……

Windows 程序本来就可以在窗口失去焦点的时候继续消息循环,由此可以看出 Graphics.update 内部应该某种邪恶的线程睡眠机制……
作者: sizz123    时间: 2009-5-24 20:34
  我想知道,这个实验的目的是什么?
作者: 后知后觉    时间: 2009-5-25 04:00
sleep是干嘛的额  F1里没找到{/fd}

以下引用紫苏于2009-5-24 12:33:21的发言:

Windows 程序本来就可以在窗口失去焦点的时候继续消息循环,由此可以看出 Graphics.update 内部应该某种邪恶的线程睡眠机制……


那我是不是可以理解为
让RMXP后台运行把你的罪魁祸首就是这个Graphics.update
只要不执行这个东西就。。。。。。
但是很邪恶的这个东西在游戏里不得不执行 而且还要1帧1次 囧rz……
作者: orochi2k    时间: 2009-5-25 04:36
经过一个邪恶实验后,成功让RM在后台继续接管输入信息(终于发现VISTA的一个好处了,可以偷窥最小化了的窗口-_-0)
作者: 66rpg学习    时间: 2009-5-25 16:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: qcanber    时间: 2009-5-26 04:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: 66rpg学习    时间: 2009-5-26 05:16
提示: 作者被禁止或删除 内容自动屏蔽
作者: orochi2k    时间: 2009-5-27 06:06
C++代码
前面INCLUDE了WINDOWS.H
然后MAIN里写
SetForegroundWindow (FindWindowA("RGSS Player",RM的窗口标题));
PostMessage(FindWindowA("RGSS Player",RM的窗口标题),WM_ACTIVATE,NULL,NULL);

然后开RM时跑下这程序,然后大家一起囧起来

(呃,其实让RM自己调用WINAPI也行,不过为了某邪恶目的,我写的是VC的辅助进程)
作者: 一路一风尘    时间: 2009-5-27 14:44
提示: 作者被禁止或删除 内容自动屏蔽
作者: orochi2k    时间: 2009-5-27 19:23
以下引用一路一风尘于2009-5-27 6:44:32的发言:


以下引用orochi2k于2009-5-26 22:06:21的发言:

C++代码
前面INCLUDE了WINDOWS.H
然后MAIN里写
SetForegroundWindow (FindWindowA("RGSS Player",RM的窗口标题));
PostMessage(FindWindowA("RGSS Player",RM的窗口标题),WM_ACTIVATE,NULL,NULL);

然后开RM时跑下这程序,然后大家一起囧起来

(呃,其实让RM自己调用WINAPI也行,不过为了某邪恶目的,我写的是VC的辅助进程)


[本贴由作者于 2009-5-26 22:07:15 最后编辑]



你要是直接这么做,就知道实际效果多么囧。

嗯……确实非常好玩,最小化时继续偷窥RM窗口里角色跑来跑去{/cy}
啥时候RM都在接收输入信息(呃……貌似可以做木马之类的了)
作者: 灼眼的夏娜    时间: 2009-5-29 16:45
以下引用紫苏于2009-5-24 12:33:21的发言:

其实在任意处加上这样一段:

a = 0
while true
a += 1
File.open(a.to_s, "w") {}
sleep 1
end

然后让 RM 窗口失去焦点,刷新游戏工程目录就能看到效果了,一秒一个~
但是如果在循环中加上 Graphics.update,就没有这个效果了……

Windows 程序本来就可以在窗口失去焦点的时候继续消息循环,由此可以看出 Graphics.update 内部应该某种邪恶的线程睡眠机制……


RM的Graphics.update是处理windows消息的 不调用这句应该不会处理windows消息 所以程序失去焦点获得焦点这些信息不会获取到的。一调用之后程序发现失去焦点 一般程序的 bActive = false 了。。 ~ 大概= =
作者: 虚幻死神    时间: 2009-5-30 01:46
其实嘛....我就是想知道怎么让不激活RM窗口的情况下/...

游戏还是在运行


要稳定的....请教夏娜大姐...
作者: orochi2k    时间: 2009-5-30 06:11
以下引用虚幻死神于2009-5-29 17:46:42的发言:

其实嘛....我就是想知道怎么让不激活RM窗口的情况下/...

游戏还是在运行


要稳定的....请教夏娜大姐...

偶那种就是……而且还不断在接收你的输入信息 {/cy}





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1