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

Project1

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

[已经解决] 请问如何获取Windows用户的用户名

[复制链接]

Lv2.观梦者

梦石
0
星屑
837
在线时间
61 小时
注册时间
2017-10-24
帖子
31
跳转到指定楼层
1
发表于 2017-12-10 09:11:04 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
记得之前在一个RM2003制作的游戏之中,有一个名叫《One Shot》的游戏,那个游戏是一个含有meta元素的游戏,游戏中的主人公会叫出电脑前的玩家的名字,也就是玩家电脑的用户名。
我觉得既然RM2003都可以实现,那么RMVA应该也没有问题,求教如何才能获取游戏玩家的电脑的用户名?
因为不同的系统方法可能不一样,我只想知道Windows用户如何获得就好了,自己也想做一款含有meta元素的游戏。

Lv5.捕梦者 (版主)

遠航の猫咪

梦石
3
星屑
22452
在线时间
2335 小时
注册时间
2005-10-15
帖子
1160

开拓者

2
发表于 2017-12-10 10:10:51 | 只看该作者
RUBY 代码复制
  1. GetUserName = Win32API.new("advapi32", "GetUserName", "pp", "i")
  2. user = "\0" * 255
  3. GetUserName.call(user, "\xff")
  4. user = user.strip

评分

参与人数 1+1 收起 理由
chd114 + 1 神操作···

查看全部评分

SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
837
在线时间
61 小时
注册时间
2017-10-24
帖子
31
3
 楼主| 发表于 2017-12-10 10:44:03 | 只看该作者
SailCat 发表于 2017-12-10 10:10
GetUserName = Win32API.new("advapi32", "GetUserName", "pp", "i")
user = "\0" * 255
GetUserName.call( ...

多谢。
请问需要什么dll插件吗?
对脚本只懂得很少一点,请问这段脚本应该放到哪里去使用?
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
39679
在线时间
7486 小时
注册时间
2009-7-6
帖子
13483

开拓者贵宾

4
发表于 2017-12-10 13:39:23 | 只看该作者
雨落忧伤 发表于 2017-12-10 10:44
多谢。
请问需要什么dll插件吗?
对脚本只懂得很少一点,请问这段脚本应该放到哪里去使用? ...

这样吧。你先按F11插入一个脚本页,最上面就行
  1. GetUserName = Win32API.new("advapi32", "GetUserName", "pp", "i")
  2. user = "\0" * 255
  3. GetUserName.call(user, "\xff")
  4. $username = user.strip
复制代码


然后在事件里设置变量 = 脚本:$username
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
837
在线时间
61 小时
注册时间
2017-10-24
帖子
31
5
 楼主| 发表于 2017-12-10 14:23:27 | 只看该作者
fux2 发表于 2017-12-10 13:39
这样吧。你先按F11插入一个脚本页,最上面就行

有一个问题,就是每次显示这个变量的时候都会报错。错误内容是:
ErrorMessage: invalid byte sequence in UTF-8
是不是如果用户名是汉字的话,这个就没有办法实现功能?

点评

楼下正解(23333  发表于 2017-12-10 17:27
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9617
在线时间
566 小时
注册时间
2017-9-28
帖子
208
6
发表于 2017-12-10 17:25:49 | 只看该作者
  1. ENV['UserName']
复制代码

点评

ENV还能用来获得哪些东西呢?  发表于 2017-12-11 13:26
喵喵喵
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
837
在线时间
61 小时
注册时间
2017-10-24
帖子
31
7
 楼主| 发表于 2017-12-10 17:53:54 | 只看该作者

这段要放在什么地方使用?
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9617
在线时间
566 小时
注册时间
2017-9-28
帖子
208
8
发表于 2017-12-10 18:08:38 | 只看该作者
雨落忧伤 发表于 2017-12-10 17:53
这段要放在什么地方使用?

任何可以插脚本的地方
比如你要把它放进变量的话
脚本: $game_variables[1] = ENV['UserName']
显示文章: "\V[1], 我说的就是你"
喵喵喵
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
837
在线时间
61 小时
注册时间
2017-10-24
帖子
31
9
 楼主| 发表于 2017-12-10 18:18:25 | 只看该作者
hyrious 发表于 2017-12-10 18:08
任何可以插脚本的地方
比如你要把它放进变量的话
脚本: $game_variables[1] = ENV['UserName']

多谢提醒,已经尝试了。
确实不会报错了,但是有了一个新的问题,那就是显示出来的是一些无法识别的字符(类似于????)
不过这也许是advapi32自己的问题了(就是字库缺失相应文字),不知道能不能解决……
不能解决就先这样了,总之非常感谢。
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
39679
在线时间
7486 小时
注册时间
2009-7-6
帖子
13483

开拓者贵宾

10
发表于 2017-12-10 19:16:55 | 只看该作者
雨落忧伤 发表于 2017-12-10 18:18
多谢提醒,已经尝试了。
确实不会报错了,但是有了一个新的问题,那就是显示出来的是一些无法识别的字符 ...

有了楼上的这段不需要之前的代码了。


RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-29 05:54

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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