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

Project1

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

[已经解决] 有没有人见过自动关闭重复打开窗口的脚本

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2927
在线时间
435 小时
注册时间
2014-11-21
帖子
145
跳转到指定楼层
1
发表于 2020-8-18 11:21:18 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
如题,最近在加一些简单的提高体验感的辅助内容,我记得之前在某款游戏上看到过这个功能,当你打开游戏时如果已经有一个游戏在运行,会提示你并自动关闭,但我找不到那个游戏了,不知道有没有人也见过类似的脚本?

Lv4.逐梦者

梦石
0
星屑
13560
在线时间
2753 小时
注册时间
2014-10-4
帖子
756

R考场第七期纪念奖

2
发表于 2020-8-21 02:11:22 | 只看该作者
本帖最后由 SixRC 于 2020-8-21 02:14 编辑

简单版本
插到随便什么地方
RUBY 代码复制
  1. name = "tst20200818xx"
  2. if Win32API.new("kernel32", "OpenEventA", "llp", "l").call(2, 0, name) != 0
  3.   p "已有实例运行"
  4.   exit
  5. end
  6. if Win32API.new("kernel32", "CreateEventA", "lllp", "l").call(0, 0, 0, name) == 0
  7.   p "名称有误"
  8.   exit
  9. end

name改的有独特性就行 免得冲突
类似的做法还有些别的东西 类似的同步量 文件独占 等
原理基本上都是创建个东西 程序退出了系统会擦屁股 后来者不能二次进行或知道前任干过 这种
麻烦的有枚举窗口或进程来看有没有打开过 嗯 麻烦 没意思

上面这个是通过ruby去执行的 需要等窗口等游戏资源初始化完了再执行  优点是插到脚本就行 缺点是慢
为了让游戏打开之初就执行
可以魔改game.exe 让他运行的开始就检测 这个稍微麻烦
简单点的是 写个 dll 比方
cpp

然后找个PE编辑器 把这个 dll 添加到 game.exe 的导入表
这样一点开程序(几乎)第一时间就会检测
要加别的小功能 比方打开第一个运行的游戏窗口 也是这样比较简单 拓展性好


为什么隔了这么久才回复呢?
因为不喜欢楼主有了一个答案就溜不爱看/回复底楼层这点
其实不是这么久没人回复本来也不想回复的
现在回复也只是为了自己高兴
发发牢骚 就这样吧

点评

可以使用,感谢大佬!  发表于 2020-8-24 20:43

评分

参与人数 1星屑 +100 +1 收起 理由
RyanBern + 100 + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-20 22:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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