所以,这是一个奇怪的。
我有一个.NET应用程序,它加载一个C ++ / CLR DLL,然后启动一个进程(使用CreateProcess)并向其中注入一个DLL(使用远程线程方法)。但是,当您以管理员身份启动.NET应用程序时,以及以普通用户身份调用它时,新创建的进程(即游戏)具有完全不同的纹理。它的纹理包含在游戏根目录下的文件中。我的流程创建代码可以正常工作,如果我将它构建为一个独立的程序 - 没有CLR - 并运行它,所以它不可能。
这可能是什么原因?这与我开始的游戏无关,我确定。游戏从中读取内容的目录是仅限管理员,所以自然地,以管理员身份运行.NET应用程序应该可以访问。但我得到的恰恰相反 - 只有在没有管理员权限的情况下运行它才有效。
答案 0 :(得分:0)
引用自己的另一个问题:
某些位置,例如" Program Files",在最新版本的Windows上受到保护。如果您的程序未以管理员身份运行并尝试访问受保护的位置,则读/写操作将以静默方式重定向到C:\ Users \ MYNAME \ AppData \ Local \ VirtualStore \ MY \ FOLDER \ PATH。以管理员身份运行您的程序应该在任何位置进行更正。
看看这个位置,你会看到问题是否来自这里。