gpt4 book ai didi

c - 32/64 位 psr.exe 问题

转载 作者:行者123 更新时间:2023-11-30 16:57:00 24 4
gpt4 key购买 nike

我当前遇到 psr.exe 问题。实际上,它与以下命令完美配合:

  • C:\windows\system32\psr.exe
  • C:\windows\syswow64\psr.exe
  • psr.exe(包含 system32\cmd.exe 和 syswow64\cmd.exe)。

但是,当我的程序(在 64 位 Windows 7 上运行的 32 位程序)使用此 bat 启动应用程序时,它不起作用。什么都没发生。我的程序可以从bat文件打开记事本,或者执行任何你想要的,但它不能与psr.exe一起使用。

你能给我一些建议吗?也许这不是 32/64 位兼容性问题,但我不知道为什么这不起作用......

编辑:批处理文件内容为:C:\windows\system32\psr.exe

运行这个bat的程序是用C编写的,它使用这个函数来启动它:

CreateProcessAsUser(
hTokenDup,
NULL,
"C:\\toto\\mybat.bat",
NULL,
NULL,
FALSE,
NORMAL_PRIORITY_CLASS | CREATE_NEW_CONSOLE,
lpEnvironment,
NULL,
&sInfo,
&ProcessInfo)

如果 .bat 文件包含 C:\windows\system32\notepad.exe 而不是 C:\windows\system32\psr.exe,则效果完美。

如果我从桌面双击包含 C:\windows\system32\psr.exe 的 bat 文件,它可以正常工作,但从我的 C 程序中,它不起作用。

(注意:我的 c 程序可以与其他 .exe 文件(例如记事本)一起使用)

非常感谢。

约翰

最佳答案

如果在 64 位 Windows 操作系统上运行的 32 位程序尝试访问文件 C:\windows\system32\psr.exe,Windows 会将请求重定向到文件 C:\windows\syswow64\psr.exe

要从 32 位环境启动 64 位系统应用程序,您需要执行 C:\windows\sysnative\psr.exe ,它将被重定向到“真实”C:\windows\system32\psr.exe

要在 64 位环境中完全运行 bat 文件,请使用以下参数执行 C:\windows\sysnative\cmd.exe: /c "C:\toto\mybat.bat"

但是,对于您的情况来说,这似乎不是问题。

是否您尝试模拟的用户的配置文件、主文件夹、环境已损坏,或者不具备 psr.exe 应用程序所需的某种权限?

或者应用程序可能需要加载用户配置文件,但您没有事先调用 LoadUserProfile() 来加载它?

尝试通过运行批处理文件进行测试,如下所示:

c:\windows\syswow64\runas.exe /noprofile /env /user:INSERT_USERNAME_HERE "C:\toto\mybat.bat"

有效果吗?现在尝试删除 /env 和/或用 /profile 替换 /noprofile。现在可以吗?

关于c - 32/64 位 psr.exe 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39703295/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com