Project1

标题: 关于win7调用win32 API写入文件问题,有人成功过么 [打印本页]

作者: gamedev0001    时间: 2011-11-3 21:53
提示: 作者被禁止或删除 内容自动屏蔽
作者: 各种压力的猫君    时间: 2011-11-3 22:42
右键……管理员身份运行……
作者: gamedev0001    时间: 2011-11-3 23:02
提示: 作者被禁止或删除 内容自动屏蔽
作者: 盈盈    时间: 2011-11-4 00:07
好像win7对系统目录操作需要TrustedInstaller权限
作者: 苏小脉    时间: 2011-11-4 10:23
你用的哪个 API,kernel32 里的 CopyFile?可以试试 SHFileOperation(Vista 之前) 和 IFileOperation(Vista 之后),这两个建立在 Shell 上的,有详细的错误码,如果还有问题可以进一步分析。
作者: gamedev0001    时间: 2011-11-4 10:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: 苏小脉    时间: 2011-11-4 11:04
gamedev0001 发表于 2011-11-4 10:49
用的是这个但是这样写的话在xp下不就不行了么?那么我应该先判断下系统,是xp用copyfile,vista用SHFileOper ...

目前为了测试可以先用 SHFileOperation,微软只是在 Vista 之后弃用这个函数,但为了向下兼容不会移除它。如果你有 Win7 环境,就可以用 IFileOperation 试试,或许能得到更多诊断信息。
作者: gamedev0001    时间: 2011-11-4 17:14
提示: 作者被禁止或删除 内容自动屏蔽
作者: 盈盈    时间: 2011-11-4 17:29
本帖最后由 盈盈 于 2011-11-4 17:30 编辑

其实我现在有好多功能在RM上不会写,所以我就用了个偷懒的方法,把要的功能写成dll然后在rm里调用这个dll那么一切就完成了。。。。
作者: gamedev0001    时间: 2011-11-4 17:37
提示: 作者被禁止或删除 内容自动屏蔽
作者: 苏小脉    时间: 2011-11-4 22:32
gamedev0001 发表于 2011-11-4 17:14
发现SHFileOperation这个函数好像没办法在XP下用啊,这样我自己都不知道怎么写对,如何给别人试呢?

不知 ...

看你发了个关于 C 结构的贴,想必现在已经会了。

不知道有没有其他方法可以,比如运行个命令提示符cmd之类的,也有copy功能,如果这样,我是不是可以尝试调用win7的cmd,然后使用cmd复制到字体目录呢?

如果是权限问题的话,即使通过命令提示符也没有不失败的理,而且反而不会像 shell32 的 API 那样返回丰富的错误信息。用命令提示符的 copy 是进行外部系统调用,会另建进程(以及可能的控制台窗口),显然不是最理想的解决方案。

你实现这个功能的 use case 是什么?让游戏能使用自定义的字体?那样的话其实没必要强行安装到系统目录,直接让程序在调用字体资源就行了。具体的做法,可能相对比较繁冗,因为我们需要在 RM 初始化系统字体表之前调用 AddFontResourceEx,在不进行大量二进制逆向修改的情况下需要做一些 hook 的工作。我以前做过这个,比较简陋,但很容易扩展。
作者: gamedev0001    时间: 2011-11-5 10:05
提示: 作者被禁止或删除 内容自动屏蔽




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