Project1
标题:
如何用脚本安装游戏文件夹中的字体?
[打印本页]
作者:
David_Exmachina
时间:
2018-1-26 17:04
标题:
如何用脚本安装游戏文件夹中的字体?
字体可以手动地添加到系统字体文件夹。
可是能不能实现用脚本安装游戏文件夹中的字体?
个人认为的伪代码:
font_name = 字体名称
unless Font.exist?(font_name)
path_game = 游戏文件夹中的字体文件夹的名称
path_sys = 系统字体文件夹的名称
复制(font_name, path_game, path_sys)
end
复制代码
如果不能,如何直接使用游戏文件夹中的字体文件夹中的字体呢?
作者:
mori13
时间:
2018-1-26 18:56
本帖最后由 mori13 于 2018-1-26 19:00 编辑
用win32API的kernel32的CopyFileA函数
类似代码如下
#查找系统根目录
dir = Win32API.new('kernel32','GetSystemDirectory','pl','l')
dir_str = " " * 256
dir.call(dir_str,255)
dir_str = dir_str.split('system')[0]
#字体查找
font_name = "STXINWEI.ttf"
font_chn_name = "华文新魏"
begin
if FileTest.exist?(font_name)
copy = Win32API.new('kernel32',"CopyFileA",'ppl','')
copy.call(font_name, "#{dir_str}Fonts/#{font_name}",0)
font = Win32API.new('gdi32','AddFontResourceA','p','l')
sendmsg = Win32API.new('user32','SendMessageA','llll','l')
unless Font.exist?(font_chn_name)
font.call(font_name)
sendmsg.call(65535,29,0,0)
end
end
end
复制代码
作者:
Lemax
时间:
2018-1-26 21:24
https://rpg.blue/thread-404121-1-1.html
作者:
David_Exmachina
时间:
2018-1-27 14:12
上面两个都用了一下,可是没有用,
系统字体文件夹并没有出现我安装的字体。
作者:
David_Exmachina
时间:
2018-2-6 12:24
话说,这个问题就没有办法解决吗?
作者:
hyrious
时间:
2018-2-6 13:34
本帖最后由 hyrious 于 2018-2-6 13:40 编辑
首先,只有 VA 可以不安装到系统而直接使用 Fonts 文件夹下的字体,RMXP 必须安装到系统
其次,安装到系统之后需要刷新一次系统字体表,这也是为啥你直接复制字体文件到相关文件夹不一定立即生效的原因(而正经安装方式就没问题)
下面给几个可选的建议
1. 切换到 RMVA
2. 游戏内外写清楚要玩家安装某些字体
3. 使用正经的安装字体姿势,和手动安装一回事,参考
https://superuser.com/questions/ ... dows-command-prompt
考虑到 Windows API 可能因为更新而使你的脚本失效,个人建议第 1 或第 2 条
作者:
mori13
时间:
2018-2-6 19:48
本帖最后由 mori13 于 2018-2-6 19:54 编辑
是这样的,我的系统是在win7下运行。以下观点全部都是以我在2楼发的代码(源代码来源于《我的魔塔我做主之天塔》)
作为基础,并在下面附上我的范例工程
首先由于如果是在winXP下应该能直接复制到C盘里,出现了此类代码,而在win7上直接点击测试和运行 并没有能够
成功的复制到fonts目录里,我测试后发现是因为这是没有管理员权限,无法复制任何东西到C盘里,但是复制到D盘
或者桌面文件夹之类的都没有问题。在右键以管理员运行Game.exe就可以复制东西到C盘或者C:\\windows里了
其次说到字体问题,没有进行安装的字体,即便复制过去也是无法在fonts里找到的
而代码里虽然无法成功安装过去,但是却能把字体类似于注入到系统一样,能够被system使用,这也会是运行了代码
之后无法删除字体文件了。同时可以在游戏里,或者word之类的使用和找到这个字体。(第一次打开游戏无法显示字体,第二次
打开后就能显示字体了)。缺点是,重启电脑后系统好像会清除没成功安装的字体,字体也会被刷新掉。重启两次游戏后字体又能照常使用了
综上所述,字体无法成功复制安装到系统的fonts文件夹里,但是能安装到系统里一次使用,可以在游戏或者word等使用,能照常在游戏里使用需要安装的字体
(以win7为基础的说明,其他系统不清楚(没朋友帮偶测试呜呜呜))
下面是我的测试工程,字体来源于《黑色笔记本》范例的方正像素12字体
Project3.rar
2018-2-6 19:48 上传
点击文件名下载附件
383.02 KB, 下载次数: 110
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1